В чем разница между преобразованиями Хафа и Радона?


34

Я знаком с преобразованием Радона по изучению компьютерной томографии, но не с преобразованием Хафа. Википедия говорит

Плоскость (r, θ) иногда называют пространством Хо для множества прямых в двух измерениях. Это представление делает преобразование Хафа концептуально очень близким к двумерному преобразованию Радона. (Их можно рассматривать как разные взгляды на одно и то же преобразование. [5])

Их вывод выглядит одинаково для меня:

Графики Ро и Тета для преобразования Хафа и Радона

Поэтому я не понимаю, в чем разница. Они одно и то же видят по-разному? Каковы преимущества каждого другого взгляда? Почему они не объединены в «преобразование Хафа-Радона»?


Эй, какой-то не связанный вопрос, но не могли бы вы поделиться своей схемой цветов Безмара, которую вы использовали на этой картинке ? Это выглядит довольно хорошо, и мне было интересно, есть ли у вас массив значений RGB описывающий его. M×3
DumpsterDoofus

@DumpsterDoofus Я думаю, что я не опубликовал его, потому что он грязный, и я сначала хотел его отшлифовать, но так как я еще этого не сделал : версия без Безье здесь gist.github.com/endolith/2879736, а попытка Безье здесь gist .github.com / эндолиты / ef948b924abf289287bd также используется здесь flic.kr/p/dWSfUd
эндолиты

Спасибо, я на самом деле понял это прошлой ночью, это можно записать компактно какRGB(x)=((2x)xBoole[0x1]x2Boole[1x1]x(x+2)Boole[1x0]),
DumpsterDoofus

@DumpsterDoofus Не стесняйтесь очищать мой код :)
endolith

Ответы:


31

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

Преобразование Радона - это математическое интегральное преобразование, определенное для непрерывных функций в на гиперплоскостях в . С другой стороны, преобразование Хафа представляет собой дискретный алгоритм, который обнаруживает линии (расширяемые до других форм) в изображении путем опроса и биннинга (или голосования).рNрN

Я думаю, что разумная аналогия для разницы между ними будет похожа на разницу между

  1. вычисление характеристической функции случайной величины как преобразования Фурье ее функции плотности вероятности (PDF) и
  2. генерирование случайной последовательности, вычисление ее эмпирического PDF-файла путем разбивки гистограммы и последующее преобразование его соответствующим образом.

Тем не менее, преобразование Хафа является быстрым алгоритмом, который может быть подвержен определенным артефактам. Радон, будучи более математически обоснованным, точнее, но медленнее. На самом деле вы можете видеть артефакты в вашем примере преобразования Хафа как вертикальные страты. Вот еще один быстрый пример в Mathematica:

img = Import["http://i.stack.imgur.com/mODZj.gif"];
radon = Radon[img, Method -> "Radon"];
hough = Radon[img, Method -> "Hough"];
GraphicsRow[{#1, #2, ColorNegate@ImageDifference[#1, #2]} & @@ {radon,hough}]

Последнее изображение очень блеклое, хотя я отрицала его, чтобы показать полоски темного цвета, но оно есть. Наклон монитора поможет. Вы можете нажать на все цифры для увеличения изображения.

Отчасти причина, по которой сходство между ними не очень хорошо известно, заключается в том, что разные области науки и техники исторически использовали только одну из этих двух для своих нужд. Например, в томографии (медицинской, сейсмической и т. Д.), Микроскопии и т. Д., Возможно, используется исключительно преобразование Радона. Я думаю, что причина этого в том, что сведение артефактов к минимуму крайне важно (артефакт может быть неправильно диагностированной опухолью). С другой стороны, при обработке изображений, компьютерном зрении и т. Д. Используется преобразование Хафа, поскольку скорость является основной.


Вы можете найти эту статью довольно интересной и актуальной:

M. van Ginkel, CL Luengo Hendriks и LJ van Vliet, краткое введение в преобразования Радона и Хафа и их взаимосвязь , Группа количественных изображений, Департамент науки и технологий обработки изображений, TU Delft

Авторы утверждают, что хотя они очень тесно связаны (в своих первоначальных определениях) и эквивалентны, если вы пишете преобразование Хафа как непрерывное преобразование, преимущество Радона состоит в том, что он более интуитивен и имеет прочную математическую основу.


Существует также обобщенное преобразование Радона, аналогичное обобщенному преобразованию Хафа, которое работает с параметризованными кривыми вместо линий. Вот ссылка, которая имеет дело с этим:

Тофт, PA, "Использование обобщенного преобразования Радона для обнаружения кривых на изображениях с шумом" , IEEE ICASSP-96, Vol. 4, 2219-2222 (1996)


О, я думал, что они были добавлены к изображению намеренно. Не понял, что это артефакты. Значит, Радон - это Хаф, как ДПФ - БПФ? Но есть также обобщенное преобразование Хафа, которое может найти круги и прочее, и, возможно, аналогичные вещи для преобразования Радона?
Эндолит

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

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

1
@endolith Это мой опыт, что Хаф быстрее. Тем не менее, я использую эти два, чтобы обнаружить несколько нечетных строк в чем-то, с чем я возился. Никогда не использовал это в серьезной работе, и при этом я не осуществил свою собственную. Поэтому я бы предложил задать это как новый вопрос, поскольку я не могу ответить с уверенностью.
Lorem Ipsum

6

В дополнение к ответу Лорема Ипсума, объясняющего преобразование Хафа как дискретную форму преобразования Радона, мне нравится это описательное объяснение - также согласно Гинкелю и другим :

ρθ

θθΔρ(Икс,год)

ΔθΔρ

θθ

Я предполагаю, что Hough доминирует во многих областях из-за его простого алгоритма, тогда как Радон используется там, где важна точность или доступны априорные знания.

См. Также ссылки на Matlab (разверните вкладку Алгоритм ):

www.mathworks.com/help/images/ref/radon.html

www.mathworks.com/help/images/ref/hough.html

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.