To był obraz uzyskany po filtrowaniu Gabora ... Czy istnieje jakiś sposób na usunięcie linii wewnątrz obrazu oprócz jasnej białej zaokrąglonej wady.
Czy spróbowałem innej orientacji filtra gabor, uzyskaliśmy następujący wynik:
Po progowaniu: co jest wystarczające, ale nie świetne
Po filtrowaniu medianowym:
Z góry dziękuję
Odpowiedzi:
Jeśli dane wyjściowe filtra Gábora są wiarygodne, a zmienność danych obrazu nie jest tak duża, że wynik wygląda zupełnie inaczej, możesz zastosować następujące podejście (jego części, o których już wspomniano):
Binaryzuj swój drugi obraz za pomocą dowolnego algorytmu automatycznego progowania. Jak widać, zakres progów, które będą działać, jest duży.
Użyj algorytmu oznaczania składników, aby oznaczyć każdy podłączony region piksela unikalną wartością.
Oblicz dla każdego elementu obrazu właściwość, która opisuje, jak blisko jest twój obiekt do wypełnionego koła. W tym celu możesz użyć na przykład zwartości . Użyłem poniżej ułamka pikseli w równoważnym promieniu dysku . Ten promień jest promieniem dysku o takim samym obszarze, jaki miałby Twój obiekt.
Aby zobaczyć, że automatyczna binaryzacja powinna działać, oto wyniki dla bardzo niskiego i bardzo wysokiego progu:
Zaktualizuj etykietowanie komponentów
Wybór oznakowania komponentu nie jest krytyczny dla twojej aplikacji. Sugerowałbym, abyś musiał wdrożyć go samodzielnie, aby zastosować bardzo prostą metodę. Wersja jednoprzebiegowa ze strony Wikipedii jest bardzo łatwa. Zasadniczo iterujesz przez obraz binarny, a kiedy napotykasz piksel, który jest biały i nie jest jeszcze oznaczony, używasz nowej etykiety dla tego obiektu i zaczynasz od tego piksela.
Proces znakowania tego obiektu etykietą jest zasadniczo podobny do wypełnienia zalewowego. To jest na stronie Wikipedii wewnętrzne kroki 1-4 w algorytmie. Zaczynasz od tego piksela oznaczonego i umieszczasz wszystkich jego sąsiadów na stosie (użyli wektora ). Dla piksela na stosie sprawdzasz, czy jest on na pierwszym planie i nie jest już oznaczony. Jeśli musisz go oznaczyć, ponownie umieszczasz wszystkich jego sąsiadów na stosie. Rób to, dopóki twój stos nie będzie pusty.
Następnie kontynuuj skanowanie obrazu. W przeciwieństwie do opisu na stronie Wiki, nie musisz usuwać piksela z oryginalnego obrazu, po prostu przeskakujesz, gdy masz wartość inną niż 0 w obrazie etykiety.
źródło
Kilka pomysłów:
EDYCJA: po kroku filtrowania mediany jesteś na dobrej drodze. Dobra robota! Punkt 2, który zasugerowałem powyżej (zamknij, a następnie oznaczenie regionu) to jedna technika, która zabierze Cię do końca.
źródło
Możesz wypróbować aktywne kontury. Chociaż może być powolny, może poradzić sobie z takimi skomplikowanymi przypadkami.
Możesz też użyć wcześniejszej wiedzy do przetworzenia tego obrazu. Na przykład wiesz, że obiekt blob jest „duży” i „połączony”. Tak więc, licząc liczbę każdego połączonego regionu, możesz go znaleźć.
źródło