Przejdź do zawartości

Canny

Z Wikipedii, wolnej encyklopedii

Canny – metoda detekcji krawędzi występujących w obrazie. Opracowana została ona przez Johna F. Canny w 1986 roku. Wykorzystuje wielostopniowy algorytm w celu detekcji wielu różnych krawędzi w obrazie. Najważniejszy jednak pozostaje fakt, że Canny przedstawił teorię obliczeniową wyjaśniającą zasadę działania tej metody.

Rozwój algorytmu Canny[edytuj | edytuj kod]

Celem metody Canny jest określenie optymalnego algorytmu detekcji. Słowo „optymalny” oznacza tu:

  • dobrą detekcję – algorytm powinien wykryć tak dużo krawędzi jak to tylko możliwe.
  • dobre umiejscowienie – oznaczona krawędź powinna być jak najbliżej rzeczywistej krawędzi na obrazie.
  • minimalną odpowiedź – konkretna krawędź powinna być oznaczona tylko raz, i jeśli tylko możliwe, zakłócenia (szum) w obrazie nie powinny tworzyć fałszywych krawędzi.

Aby spełnić powyższe wymagania Canny wykorzystał rachunek wariacyjny – technikę która wyszukuje funkcję, która optymalizuje dany funkcjonał. Optymalna funkcja w detektorze Canny’ego opisana jest przez sumę czterech wykładniczych warunków, ale może być przybliżona pierwszą pochodną funkcji Gaussa.

Kroki algorytmu Canny’ego[edytuj | edytuj kod]

Redukcja szumu[edytuj | edytuj kod]

Detektor krawędzi Canny’ego wykorzystuje filtr bazujący na pierwszej pochodnej funkcji Gaussa, ponieważ jest czuły na obecność szumu w surowym nieobrobionym obrazie. Więc, aby zacząć, należy dokonać splotu obrazu z filtrem Gaussa. Efektem tego działania jest lekko rozmazany obraz, który nie jest dotknięty pojedynczymi zakłóceniami w żaden znaczący sposób.

Poniżej mamy przykład filtru Gaussa 5x5, wykorzystywanego do obróbki obrazu z = 1.4:

Szukanie natężenia gradientu obrazu[edytuj | edytuj kod]

Krawędź na obrazie może być skierowana w różnych kierunkach. Algorytm Canny’ego wykorzystuje więc cztery filtry do detekcji poziomych, pionowych oraz przekątnych krawędzi na wygładzonym obrazie. Operatory detekcji krawędzi (np. Krzyż Robertsa, Prewitt, Sobel) zwracają wartości pierwszej pochodnej dla kierunku poziomego (Gy) i kierunku pionowego (Gx). Nachylenie (gradient, szybkość narastania) krawędzi oraz jej kierunek mogą być określone na podstawie poniższych wzorów:

Kąt detekcji krawędzi zaokrąglony jest do czterech przypadków reprezentujących pion, poziom oraz dwóch przekątnych (np. 0, 45, 90 i 135 stopni)

Usuwanie niemaksymalnych pikseli[edytuj | edytuj kod]

Trzeci etap obejmuje „pocienianie” krawędzi w sposób zapewniający ich ciągłość. Efektem jest ciągła linia złożona z pojedynczych pikseli.

Progowanie z histerezą[edytuj | edytuj kod]

Ostatni etap – progowanie ma na celu usunięcie nieistotnych krawędzi, które mają nachylenie (stromość) poniżej ustawionego progu. Progowanie z histerezą powoduje, że do już wykrytych krawędzi są dołączane następne piksele mimo spadku nachylenia, aż do osiągnięcia dolnego progu wykrywania. Takie postępowanie zapobiega dzieleniu krawędzi w miejscach słabszego kontrastu.

Podsumowanie[edytuj | edytuj kod]

Algorytm Canny’ego można wykorzystać w wielu różnych środowiskach. Jego parametry pozwalają na takie ich modyfikacje, aby dostosować go do rozpoznawania krawędzi o różnych cechach, w zależności od aktualnych oczekiwań. Oryginalna praca Canny’ego, pochodne optymalnych filtrów prowadziła do Filtr o skończonej odpowiedzi impulsowej.

Bibliografia[edytuj | edytuj kod]

  • Canny, J., A Computational Approach To Edge Detection, IEEE Trans. Pattern Analysis and Machine Intelligence, 8:679-714 (1986).
  • R. Deriche: Using Canny’s criteria to derive a recursively implemented optimal edge detector. The International Journal of Computer Vision, 1(2):167-187, maj 1987.

Linki zewnętrzne[edytuj | edytuj kod]