Zasadniczo większość literatury na temat algorytmów wykrywania krawędzi i aplikacji wykorzystujących wykrywanie krawędzi nawiązuje do detektora krawędzi Canny'ego. Tak bardzo, że wygląda na prawie „rozwiązanie” wykrywania krawędzi. Z pewnością zrobiłby to najlepiej, równoważąc hałas i zachowując krawędzie.
Jednak, jako zwykła ciekawość, czy istnieje obszar zainteresowania detektora krawędzi Canny? czy są obszary zastosowań, w których Canny nie będzie najlepszy?
W tym kontekście szybsze wdrożenie nie jest tak naprawdę problemem. Detektor brzegowy powinien skupiać się na dobrej lub złej jakości i użyteczności generowanych krawędzi.
Poza tym tak naprawdę nie koncentruję się na kwestiach związanych z implementacją. Szukam bardziej teoretycznych ograniczeń lub cech charakterystycznych dla algorytmu.
źródło
Odpowiedzi:
Z mojego doświadczenia wynika, że następujące punkty są ograniczeniami:
Również z powodu wygładzenia gaussowskiego: położenie krawędzi może być wyłączone, w zależności od wielkości jądra gaussowskiego.
Metoda ma problemy z narożnikami i skrzyżowaniami:
Ten ostatni problem rozwiązuje metoda SUSAN , która lepiej łączy krawędzie, a także powoduje ładne połączenia, jak pokazują te przykładowe liczby podane w powiązanym dokumencie:
Testuj obraz wejściowy:
Wyniki SUSAN:
Wyniki Canny:
Możesz wyraźnie zobaczyć, że SUSAN znajduje rogi i skrzyżowania zamiast Canny.
źródło
Mogę wymyślić kilka:
źródło
z mojego doświadczenia wynika, że proces wykrywania krawędzi za pomocą Canny Edge Detector wygładza krawędzie przed ich wykryciem, a czas i długość filtra muszą być idealnie dopasowane, aby wykryć wszystkie krawędzie bez błędów.
źródło
Chciałbym tylko wspomnieć o jednym ograniczeniu detektora Canny'ego, które utrudnia jego zastosowanie, a mianowicie ustawieniu parametrów. Myślę, że ustawienie parametrów jest nie tylko problemem dla detektora Canny, ale także problemem dla innych metod wykrywania krawędzi.
źródło