agrobot_base/Python/street-suggar-recognize/street-recognize-line.py

38 lines
1.3 KiB
Python

import cv2
import numpy as np
# Carregar a imagem
image = cv2.imread('foto2.jpg') # Substitua 'sua_imagem.jpg' pelo caminho da sua imagem
# Converter para tons de cinza
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Criar uma máscara para destacar a região de interesse (por exemplo, caules das canas)
lower_color = np.array([0, 0, 0]) # Valores de cor da região de interesse
upper_color = np.array([100, 100, 100])
mask = cv2.inRange(image, lower_color, upper_color)
# Aplicar a máscara na imagem em tons de cinza
masked_gray = cv2.bitwise_and(gray, gray, mask=mask)
# Aplicar a detecção de bordas usando o algoritmo de Canny na região de interesse
edges = cv2.Canny(masked_gray, 50, 150, apertureSize=3)
# Encontrar linhas na região de interesse usando a transformada de Hough
lines = cv2.HoughLinesP(edges, 1, np.pi / 180, threshold=100, minLineLength=100, maxLineGap=10)
# Desenhar as linhas identificadas na imagem original
if lines is not None:
for line in lines:
x1, y1, x2, y2 = line[0]
cv2.line(image, (x1, y1), (x2, y2), (0, 255, 0), 2)
# Criar uma janela redimensionável
cv2.namedWindow('Linhas de Caules de Cana', cv2.WINDOW_NORMAL)
# Mostrar a imagem resultante
cv2.imshow('Linhas de Caules de Cana', image)
cv2.waitKey(0)
cv2.destroyAllWindows()