Я хочу найти линию между синим цветом и серым цветом на следующем рисунке:
Точнее, конечные точки этой линии.
Хаф трансформирует выбор? Если да, то как мне настроить картинку перед использованием Hough?
Любой способ решения этой проблемы был бы полезен.
Ответы:
В общем, вам нужен детектор краев, такой как детектор краев Canny, для такого рода проблем. Преобразование Хафа полезно для выделения линий, а не краев.
Тем не менее, в этом конкретном случае вам лучше сделать что-то вроде:
так как это такое простое изображение.
источник
Для изображения это простое ядро свертки, подобное следующему, хорошо найдет ребра:
[-1 2 - 1]
Это дает один краевой пиксель в каждой краевой точке. Нет суеты, нет суеты. Кэнни слишком вовлечен в эту проблему. Если вы хотите найти граничные точки для линий под любым углом, то вы можете использовать простой лапласиан, лапласиан гауссов (LoG) или разность гауссов (DoG). Sobel и Prewitt также просты, но неуместны, поскольку они дают линию «двойной толщины».
Здесь описана злая быстрая реализация Hough: http://www.ic.uff.br/~laffernandes/projects/kht/index.html.
Существуют также алгоритмы «без параметров», которые очень быстры, но немного сложны в реализации и отладке.
источник