Pracuję nad projektem zastosowania Active Shape Model do zlokalizowania zęba na radiogramie dentystycznym. Dla osób zaznajomionych z tą techniką próbuję obecnie pobrać próbki normalnych wektorów dla każdego punktu orientacyjnego. W artykule zaleca się stosowanie pochodnych próbkowanych pikseli: „Aby zmniejszyć skutki zmian globalnej intensywności, próbkujemy pochodną wzdłuż profilu, a nie bezwzględne wartości poziomu szarości”.
Więc moim problemem jest to, jak najlepiej filtrować radiogramy dentystyczne, aby przygotować je do zastosowania operatora pochodnego. Obecnie używam kombinacji filtra środkowego, aby usunąć większość szumu kwantowego (cętki). Po nim następuje filtr dwustronny . Następnie stosuję operator Scharra, aby obliczyć rzeczywisty gradient, z którego należy próbkować.
Pierwszy obraz pokazuje oryginalne dane. Na drugim i trzecim obrazie przedstawiono przefiltrowane dane, najpierw jako wielkość widma po FFT, a następnie jako przefiltrowane dane obrazu. Czwarty obraz pokazuje wynik zastosowania operatora Scharr do trzeciego obrazu.
Moje pytania to:
- Czy istnieją dobrze znane sposoby zmniejszania hałasu na radiogramie dentystycznym, które różniłyby się od mojego podejścia?
- Co powoduje „zadymiony” wygląd krawędzi i „płaskich” (innych niż krawędzie) obszarów? Czy jest to jakiś resztkowy szum na przefiltrowanym obrazie, czy jest on nieodłączny od operatora gradientu? Jeśli rzeczywiście jest to hałas, który filtr byłby najbardziej odpowiedni? Filtr środkowy był dobry w usuwaniu małych, hałaśliwych plam, ale duże jądro powoduje, że krawędzie zbyt mocno się rozmazują. Tak więc filtr dwustronny służy do odfiltrowywania większych plam i wyrównania koloru na powierzchni bez uszkadzania krawędzi, ale nie jest w stanie odfiltrować tej zadymionej struktury.
- Czy w tym przypadku istnieje lepsza opcja niż tworzenie Scharra?
- Bonus: czy byłoby to uważane za dobry wkład w Active Shape Model? Nie wiem jeszcze, jak solidni są.
Odpowiedzi:
O ile rozumiem, przez wyprowadzenie obrazu rozumiesz wyodrębnianie krawędzi. Polecam filtrowanie obrazu przez stosunkowo duży filtr Gaussa. Jeśli obliczeniowe koszty uzyskiwania obrazu nie są krytyczne dla twojej pracy, zaleciłbym użycie detektora Canny Edge. Jest mniej wrażliwy na hałas i nie oszukuje go, i znajduje słabe krawędzie wraz z mocnymi krawędziami. Instrukcja Matlab do tego:
a wynik jest taki (wiem, że może to nie być wyniki, których szukasz, ale granie ze zmiennymi progowymi i rozmiarem filtra przyniesie pożądane wyniki):
Zauważ, że nie widać już efektu zadymienia. Również o tych złych krawędziach możesz je usunąć, używając technik otwierania i zamykania obrazu.
źródło