2012-01-31 2 views
3

я следующее изображение, полученное после Канни обнаружения края: Canny edge detection resultКак показать четкий результат после преобразования Hough?

После преобразования Hough применяется к нему, и я получаю этот результат:

enter image description here

Это очень хороший результат, но мне нужно всего одна строка из каждого пакета, поэтому я могу показать, что объект с первого изображения напоминает треугольник. Моим первым решением было рассчитать какую-то «среднюю» линию для каждого пакета. Каждая линия определяется углом и радуи. Мой способ найти «среднюю» линию для каждого пучка, чтобы вычислить среднее значение углов, используя эту формулу:

avgTheta = arctan(sum of sines of all thetas/sum of cosines of all theta) 

рассчитать среднее raduis самым простым способом:

avgRadius = sum of all raduises/number of raduises 

Однако линии, которые я получаю, не находятся в центре их связок.

Может кто-нибудь угодить советует для более лучшего разрешения?

Я использую эту реализацию трансформации Хафа: Hough Transform

Существует всегда есть возможность взять одну строку каждого пучка в случайном порядке, но я не люблю его.

Если мой вопрос непонятен, скажите мне, чтобы попытаться объяснить проблему лучше.

Заранее спасибо.

+0

Почему вы делаете материал синуса/косинуса/арктана вместо того, чтобы усреднять тета напрямую? Также, как вы определяете радиус линии? –

ответ

1

Вы можете попробовать это:

Возьмите средний угол без косинус, синус или функции арктангенса. Просто убедитесь, что вы обрабатываете обертку. На основе реализации, с которой вы связаны, мне кажется, что вы обертываете pi (180 градусов). На вашем изображении пучок почти вертикальных линий на правой стороне «острова (?)» Станет хорошим примером линий, расположенных по обе стороны обертки.

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

+0

Я, хотя о создании пула, сколько очков от оригинального изображения Canny содержит каждую из линий Hough и, следовательно, выбирая, что использовать. Может быть, это лучший выбор. Фактически таким образом я могу использовать алгоритм, если на картинке присутствует более одного объекта интереса. –

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