Odmywanie obrazu dzięki lepszej ochronie krawędzi


12

Mam obraz wejściowy:

wprowadź opis zdjęcia tutaj

i wyjście wykrywania żyły dla liścia za pomocą filtra Gabor, ale wyjście jest naprawdę głośne:

wprowadź opis zdjęcia tutaj

Próbowałem użyć denoisingu odmiany całkowitej, jednak wyniki nie są dobre:

wprowadź opis zdjęcia tutaj

Jednak nie chcę stracić drobnych szczegółów w żyłach liścia, więc filtr środkowy nie będzie pasował do mojego problemu


jakie przetwarzanie wykonujecie na oryginalnym obrazie? Co chcesz wykryć?
CharlesB

Użyłem filtra gabor na oryginalnym obrazie
vini

Czy jesteś pewien, że filtr krawędziowy to właściwy sposób na wykrycie żył? Naprawdę staramy się wyodrębnić powierzchnię 3D z podświetleniem i jego cień, coś takiego może działać lepiej: dsp.stackexchange.com/a/687/29
endolit

@vini Wygląda na to, że chcesz zrezygnować (stracić informacje o wysokiej częstotliwości) na jednej przestrzennej części obrazu, ale zachować informacje o wysokiej częstotliwości na innej przestrzennej części obrazu tak?
Spacey

chcę zachować na obrazie tylko komponenty wysokiej częstotliwości, które w moim przypadku mają cienkie krawędzie w postaci żyłek liściowych
vini

Odpowiedzi:


7

Wygląda na to, że chcesz odszumiać i zachować krawędzie. Czy rozważałeś środki nielokalne? Jest tu trochę kodu C ++ na GPL wraz z krótkim opisem algorytmu oryginalnych autorów tutaj: http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/

Jedno zastrzeżenie, środki nielokalne są bardzo wolne, a wyniki mogą być wrażliwe na implementację, którą masz. Możesz również rozważyć minimalizację ROF, ponieważ jest szybka i dobrze chroni krawędzie. Oto kod Matlaba, który to robi: http://www.stanford.edu/~tagoldst/Tom_Goldstein/Split_Bregman.html


próbowałem jednak, że wyniki są niezadowalające
vini

Słusznie. Istnieją sposoby rozwiązania problemu „odwracania obrazu binarnego”, ale nie mogę wymyślić żadnego łatwo dostępnego kodu.

Ten www.cmla.ens-cachan.fr/fileadmin/Membres/nikolova/ChanEseNikoSiap06.pdf może pomóc. Możesz także spróbować przeprowadzić segmentację obrazu na czarno-białym liściu z różnymi parametrami strojenia i zobaczyć, co otrzymujesz. Na tej stronie Split Bregman znajduje się kod segmentacji.

Próbowałem, że wciąż wyniki nie są wystarczająco dobre, chyba spróbuję czegoś innego
vini

Hmm cholera. O ile mi wiadomo, środki nielokalne są najnowocześniejsze w denoisingu. Ponieważ masz obraz binarny, mogą istnieć inne rzeczy (wyszukiwanie „tekst denoising”? „Tekst nielokalny denoising”?), Ale nie mam pomysłów.
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.