3

Im используя opencv hough transform, чтобы попытаться обнаружить фигуры. Более длинные строки очень хорошо распознаются с использованием метода HoughLines. Но более короткие строки полностью игнорируются. Есть ли способ обнаружить более короткие линии?Hough transform обнаружить короткие строки

код, я использую описано на этой странице http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_imgproc/py_houghlines/py_houghlines.html

Я больше заинтересован в линиях, таких как угол дома и т.д. , какой параметр я должен изменить, чтобы сделать это с помощью преобразования Хока? или есть другой алгоритм, я должен смотреть на

Hough transform with OpenCV python tutorial

+0

Вы пробовали 'HoughLinesP()' с параметром 'minLineLength'? –

ответ

3

На ссылке вы предоставляете смотреть на HoughLinesP

import cv2 
import numpy as np 

img = cv2.imread('beach.jpg') 
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
edges = cv2.Canny(gray, 50, 150, apertureSize=3) 
minLineLength = 100 
maxLineGap = 5 
lines = cv2.HoughLinesP(edges, 1, np.pi/180, 50, minLineLength, maxLineGap) 
for x1, y1, x2, y2 in lines[0]: 
    cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 2) 
cv2.imwrite('canny5.jpg', edges) 
cv2.imwrite('houghlines5.jpg', img) 

Также обратите внимание на края изображения, сформированного из Осторожные. Вы должны иметь возможность находить линии, в которых существуют граничные изображения.

enter image description here

и здесь выход обнаружения линии накладывается на изображении: enter image description here

Поиграйте с переменными minLineLength и maxLineGap, чтобы получить более желательный выход. Этот метод также не дает вам длинных строк, которые HoughLines делает, но, глядя на изображение Canny, возможно, эти длинные строки не желательны в первую очередь.

+0

Спасибо за подсказку, можете ли вы указать, какие значения вы использовали в качестве этих двух параметров в вашем изображении? – Pita

+0

@Pita значения, которые вы видите в коде, который я опубликовал, - это те, которые сгенерировали изображение выше. Напомним, это только зеленые линии, поскольку у меня не было оригинального изображения. – Scott