2015-03-02 2 views
3

Я использую OpenCV для идентификации и постоянных ценников с изображений. Я использовал функцию Probabilistic Hough Transform для определения краев изображения. У меня возникли проблемы с идентификацией квадратного квадрата в изображении.Идентифицировать кластеры и групповые кластеры в OpenCV

Я пытаюсь сгруппировать каждую грань/линию по ее переходу по склону и оси. Вот пример изображения и данных.

Hough Transformed with Edges Highlighted

Plots of Slope, Axis Intercept and Length

В изображении, короткие ребра рисуются красным цветом, края средней длины нарисованы синим цветом, а более длинные края рисуются в зеленый цвет. На графике наклон отображается по оси x, перехват по оси y. Графы влево и вправо одинаковы, за исключением того, что длина линии представлена ​​площадью круга.

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

Кто-нибудь знает подходящий алгоритм, который я мог бы использовать для идентификации группировок?

Спасибо.

ответ

1

Итак, после небольшого поиска я решил использовать алгоритм k-Средств. Для всех, кому может быть интересно, вот мои результаты:

Я запустил алгоритм и разделил линии на 9 кластеров. Хотя это не совсем то, что я искал (я хотел отклонить экстремальные выбросы, а не заставлять их в кластере), результаты в порядке и будут управляемы.

Вот картина из горизонтальных линий, расширенные и цветных кластера: Horizontal Lines

А вот вертикальные линии: Vertical Lines

Смежные вопросы