Jaka jest różnica między transformatami Hougha i Radona?


34

Znam transformację Radona z nauki o skanach CT, ale nie z transformacji Hougha. Wikipedia mówi

Płaszczyzna (r, θ) jest czasami określana jako przestrzeń Hougha dla zestawu linii prostych w dwóch wymiarach. Ta reprezentacja sprawia, że ​​transformacja Hougha jest bardzo zbliżona do dwuwymiarowej transformacji Radona. (Można je postrzegać jako różne sposoby patrzenia na tę samą transformację. [5])

Ich wyniki wyglądają dla mnie tak samo:

wykresy rho vs theta obok siebie dla transformacji Hougha i Radona

Więc nie rozumiem, jaka jest różnica. Czy są to te same rzeczy postrzegane na różne sposoby? Jakie są zalety każdego innego widoku? Dlaczego nie łączy się ich w „transformację Hougha-Radona”?


Hej, coś w rodzaju niezwiązanego pytania, ale czy mógłbyś podzielić się schematem kolorów mapy termicznej Beziera użytym na tym zdjęciu ? Wygląda całkiem nieźle i zastanawiałem się, czy opisujesz to tablicą wartości RGB. M.×3)
DumpsterDoofus,

@DumpsterDoofus Chyba nie zostały opublikowane, bo to kludgy i chciałem go najpierw wypolerować, ale ponieważ nie mam jeszcze: non-bezier wersja jest tutaj gist.github.com/endolith/2879736 i bezier próba jest tu sens .github.com / endolit / ef948b924abf289287bd również tutaj flic.kr/p/dWSfUd
endolit

Dzięki, właściwie to wymyśliłem zeszłej nocy, można go zapisać zwięźle jako Rsolb(x)=((2)-x)xBoole[0x1]x2)Boole[-1x1]-x(x+2))Boole[-1x0]).
DumpsterDoofus,

@DumpsterDoofus Zapraszam do czyszczenia mojego kodu :)
endolith

Odpowiedzi:


31

Transformacja Hougha i transformacja Radona są rzeczywiście bardzo do siebie podobne, a ich relację można luźno zdefiniować, ponieważ ta pierwsza jest dyskretną formą drugiej.

Transformata Radona jest matematyczną całką transformacji, zdefiniowaną dla funkcji ciągłych na na hiperpłaszczyznach w R n . Z drugiej strony transformacja Hougha jest z natury dyskretnym algorytmem, który wykrywa linie (rozszerzalne do innych kształtów) na obrazie poprzez odpytywanie i grupowanie (lub głosowanie).RnRn

Myślę, że rozsądną analogią dla różnicy między tymi dwoma byłaby różnica między nimi

  1. obliczanie funkcji charakterystycznej zmiennej losowej jako transformaty Fouriera jej funkcji gęstości prawdopodobieństwa (PDF) i
  2. generowanie losowej sekwencji, obliczanie jej empirycznego pliku PDF poprzez grupowanie histogramów, a następnie odpowiednie przekształcanie.

Jednak transformacja Hougha jest szybkim algorytmem, który może być podatny na niektóre artefakty. Radon, jako bardziej matematyczny, jest dokładniejszy, ale wolniejszy. Rzeczywiście możesz zobaczyć artefakty w przykładzie transformacji Hougha jako pionowe prążki. Oto kolejny szybki przykład w 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}]

Ostatni obraz jest naprawdę słaby, mimo że go zanegowałem, aby pokazać prążki w ciemnym kolorze, ale on tam jest. Pomoże to przechylenie monitora. Możesz kliknąć wszystkie cyfry, aby powiększyć obraz.

Jednym z powodów, dla których podobieństwo między nimi nie jest zbyt dobrze znane, jest fakt, że różne dziedziny nauki i inżynierii w przeszłości wykorzystywały tylko jedną z tych dwóch do swoich potrzeb. Na przykład w tomografii (medycznej, sejsmicznej itp.), Mikroskopii itp. Być może używa się wyłącznie transformacji radonowej. Myślę, że powodem tego jest to, że ograniczenie artefaktów do minimum ma ogromne znaczenie (artefakt może być błędnie zdiagnozowanym guzem). Z drugiej strony, w przetwarzaniu obrazu, wizji komputerowej itp. Stosuje się transformację Hougha, ponieważ szybkość jest podstawowa.


Ten artykuł może być dla Ciebie interesujący i aktualny:

M. van Ginkel, CL Luengo Hendriks i LJ van Vliet, Krótkie wprowadzenie do transformacji Radona i Hougha i ich wzajemnych relacji , Grupa obrazowania ilościowego, Dział nauki i technologii obrazowania, TU Delft

Autorzy twierdzą, że chociaż oba są ze sobą ściśle powiązane (w ich oryginalnych definicjach) i równoważne, jeśli napiszesz transformację Hougha jako transformację ciągłą, Radon ma tę zaletę, że jest bardziej intuicyjny i ma solidne podstawy matematyczne.


Istnieje również uogólniona transformacja Radona podobna do uogólnionej transformaty Hougha, która działa z sparametryzowanymi krzywymi zamiast linii. Oto odniesienie, które się tym zajmuje:

Toft, PA, „Wykorzystanie uogólnionej transformaty Radon do wykrywania krzywych w zaszumionych obrazach” , IEEE ICASSP-96, t. 4, 2219-2222 (1996)


Och, myślałem, że zostały celowo dodane do obrazu. Nie zdawałem sobie sprawy, że to artefakty. Czyli Radon jest dla Hougha, podobnie jak DFT dla FFT? Ale jest też uogólniona transformacja Hougha, która może znaleźć kręgi i inne rzeczy, a może podobne rzeczy dla transformacji Radona?
endolith

1
Tak, istnieje uogólniona transformacja Radona, która działa dla sparametryzowanych krzywych. Zakładałbym, że jest to trudniejsze w przypadku całkowicie dowolnych krzywych, ale niewiele o tym wiem. Dodałem odniesienie do mojej odpowiedzi.
Lorem Ipsum

Transformację Radona można również przyspieszyć metodami FFT. Zgaduję, że Hough nie może być? Czy Hough jest jeszcze szybszy? Zgaduję, że to zależy od rozmiaru obrazu?
endolith

1
@endolith Z mojego doświadczenia wynika, że ​​Hough jest szybszy. Jednak moim zastosowaniem tych dwóch jest wykrycie kilku dziwnych linii w czymś, z czym się bawię. Nigdy nie użyłem go w poważnej pracy, ani nie wdrożyłem własnego. Proponuję więc zadać to pytanie jako nowe pytanie, ponieważ nie mogę odpowiedzieć z całą pewnością.
Lorem Ipsum

6

Oprócz odpowiedzi Lorem Ipsum wyjaśniającej transformację Hougha jako zdyskretowanej formy transformaty Radona, podoba mi się to opisowe wyjaśnienie - również według Ginkela i innych :

ρθ

θθΔρ(x,y)

ΔθΔρ

θθ

Myślę, że Hough dominuje w wielu dziedzinach ze względu na swój prosty algorytm, podczas gdy Radon jest używany tam, gdzie dokładność jest kluczowa lub dostępna jest wiedza a priori.

Zobacz także odwołania do Matlaba (rozwiń kartę Algorytm ):

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

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.