38 lines
1.3 KiB
Python
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()
|