Я хотел бы обнаружить линию и извлечь ее две оканчивающиеся точки. В общем подходе используется преобразование hough. К счастью, в OpenCV есть sample, поэтому я нарисовал линию, чьи две точки заканчиваются p1(100,200), p2(400,200)
. Я думал, что вышеупомянутый метод предоставит мне только эти моменты. Мой образец изображенияПочему hough transform обнаруживает две строки, в то время как есть только одна строка
преобразование поджилки дает мне с двумя изображениями, которые
Для Канни фильтра,
В коде, кажется, обнаружены две линии. Это объясняет, почему красная линия толще, что указывает на то, что есть две строки, а не одна. Когда я распечатываю количество строк, он показывает мне следующие два:
lines.size(): 2
p1:<99,201> p2:<401,201>
lines.size(): 2
p1:<102,198> p2:<398,198>
Почему я получаю две линии?
В зависимости от количества ячеек в HoughSpace не все пиксели могут быть назначены линии. Попробуйте более широкие/меньшие корзины. – MisterC
Вы используете определение canny edge перед houghLines? вы должны проверить промежуточный образ, как он выглядит. градиент может создать один край на каждой стороне толстой линии. – Micka
@ Мика, да образец фактически использует хитрый алгоритм. – CroCo