Filtracja obrazów w dziedzinie częstotliwości w dziedzinie przestrzennej filtry liniowe filtry nieliniowe
Filtracja w dziedzinie częstotliwości Obraz oryginalny FFT2 IFFT2 Obraz po filtracji f(x,y) H(u,v) g(x,y) g(x,y) = IF{ H(u,v) F{f(x,y)} }
Filtracja w dziedzinie częstotliwości - idealny filtr dolnoprzepustowy 2 2 0 0 ), ( ), ( 0 ), ( ), ( v u v D u D v D u D v D u v u H + = > = D 0
256x256 D 0 =0 D 0 =70
Obraz po filtracji, idealny filtr dolnoprzepustowy D 0 =0
Obraz po filtracji, idealny filtr dolnoprzepustowy D 0 =70
Obrazy po filtracji, idealny filtr dolnoprzepustowy D 0 =0 D 0 =70 D 0 =30
Filtracja w dziedzinie częstotliwości - filtr dolnoprzepustowy Butterwortha H( u,v ) = + ( 2 )[ D( u,v )/ D 0 ] 2n n- rząd filtru D( u,v ) = u 2 + v 2, n =, 2,... D 0
n = Obraz po filtracji,filtr dolnoprzepustowy Butterwortha D 0 =0
Obrazy po filtracji, filtr dolnoprzepustowy Butterwortha n = D 0 =0 D 0 =70 D 0 =30
Filtracja w dziedzinie częstotliwości - idealny filtr górnoprzepustowy H( u,v ) = 0 D( u,v ) D( u,v ) > D D 0 0 D( u,v ) = u 2 + v 2 D 0
Wynik działania idealnego filtru górnoprzepustowego D 0 =0 D 0 =70
Obraz po filtracji, idealny filtr górnoprzepustowy D 0 =0
Dodawanie składników o niższych częstotliwościach do charakterystyki filtru D 0 D 0 =70, d=5
Wynik działania idealnego filtru górnoprzepustowego D 0 =0 D 0 =70
Filtracja w dziedzinie częstotliwości - filtr górnoprzepustowy Butterwortha H( u,v ) = D( u,v ) = + ( u 2 + 2 )[ v 2 D 0 / D( u,v )] 2n n =, 2,... n- rząd filtru D 0
Wynik działania filtru górnoprzepustowego Butterwortha n = D 0 =0 D 0 =70
Obraz po filtracji,filtr górnoprzepustowy Butterwortha
Wynik działania filtru górnoprzepustowego Butterwortha n = D 0 =0 D 0 =70
Filtracja w dziedzinie przestrzennej Obraz oryginalny f(x,y) Splot 2D Obraz po filtracji g(x,y) h(x,y) g(x,y) = IF{ H(u,v) F{f(x,y)} } = IF {H(u,v)}** IF {F {f(x,y)} } = h(x,y)**f(x,y)
Charakterystyka filtru w dziedzinie przestrzennej Aby zachować wartość średnią obrazu, suma elementów maski musi być równa maski: NxN IF{H(u,v)}=h(x,y) ĥ dobiera się tak, abyf(ĥ(x,y)) =Ĥ(x,y) H(x,y) ĥ(x,y) 3x3 5x5
Dwuwymiarowa operacja splotu maski i obrazu h(-,-) h(-,0) h(-,) I(i-,j-) h(0,-) I(i-,j) I(i-,j+) h(0,0) h(0,) I(i,j-) h(,-) I(i,j) h(,0) I(i,j+) h(,) I(i+,j-) I(i+,j) I(i+,j+) Tylko dla masek symetrycznych!
Wyznaczanie punktów obrazu po filtracji h f(x,y) g(x,y)=h(x,y)**f(x,y) g(x,y) obraz oryginalny f obraz po filtracji g
h f(x,y) Efekty brzegowe? obraz oryginalny f obraz po filtracji g
Efekty brzegowe - jedno z rozwiązań (maska 3x3) h f(x,y) pomija się pierwszy rząd, pierwszą kolumnę, ostatni rząd i kolumnę obrazu oryginalnego (NxN)- w efekcie obraz po filtracji jest mniejszy: (N-2)x(N-2)
Wyznaczanie punktów obrazu po filtracji - algorytm f, g : array[0..n-, 0..N-] of byte; { size2 - połowa wymiaru maski } h : array[-size2..size2,-size2..size2] of integer;... for i:= to N-2 do for j:= to N-2 do begin g[i,j]:=0; for k:=-size2 to size2 do for l:=-size2 to size2 do g[i,j]:=g[i,j] + f[i+k,j+l] * h[i+k,j+l]; end;... Sprawdzanie zakresu g[i,j]!!!
Filtracja w dziedzinie przestrzennej - - filtr dolnoprzepustowy uśredniający = 9 h = 25 h 2 Czy można używać masek o wymiarach parzystych?
transmitancja filtru uśredniającego dla maski h 5x5 dla maski h 2 3x3
Wynik działania filtru uśredniającego dolnoprzepustowego 3x3
Wyniki działania filtru uśredniającego obraz oryginalny maska 3x3 maska 5x5
Filtracja w dziedzinie przestrzennej - filtr dolnoprzepustowy Gaussa 2 0 2 2 d ) y x ( e x,y ) h( + = π 0.03 0.0838 0.03 0.0838 0.693 0.0838 0.0838 0.03 = 0.03 h N ) v u ( d e H( u,v ) 2 2 2 0 + = π 2 2 4 2 2 = h
Wynik działania filtru Gaussa obraz oryginalny obraz po filtracji
Efekty działania różnych filtrów dolnoprzepustowych obraz zniekształcony szumem N(0, 0.0) filtr uśredniający 3x3 filtr Gaussa 3x3 filtr Butterwortha D 0 =50
Efekty działania różnych filtrów dolnoprzepustowych obraz zniekształcony szumem N(0, 0.0) filtr uśredniający 5x5 filtr Gaussa 5x5 filtr Butterwortha D 0 =30
Efekty działania różnych filtrów dolnoprzepustowych obraz zniekształcony szumem N(0, 0.002) filtr uśredniający 3x3 filtr Gaussa 3x3 filtr Butterwortha D 0 =50
Filtracja w dziedzinie przestrzennej - filtry górnoprzepustowe = 8 h = 0 7 67 0 7 0 0 67 33 3 67 0 0 7 67 0 7 0 2......... h laplacian
Wynik działania filtrów górnoprzepustowych filtr dla maski h filtr dla maski h 2 - filtr Laplace a
),, ( ), ( ) ( ), ( ), ( ), ( ) ( ), ( ), ( ), ( ), ( ), ( ), ( + = = + = = = + = A y x f y x f A y x f y x f y x f A y x f y x Af y x f y x f y x f y x f H L L HB H L Przykład konstrukcji filtru górnoprzepustowego ( high boost filter) = 9 A h HB
Efekty działania filtru high boost filtr Laplace a A=. A=.5
jeżeli chcemy zachować wartość średnią obrazu, to do środkowego elementu maski h[0,0] należy dodać zmodyfikowana maska filtru Laplace a h ' 2 = 0. 7 0. 67 0. 7 0. 67 2. 33 0. 67 0. 7 0. 67 0. 7
= 0 0 5 0 0 3 ' h = 9 4 ' h zmodyfikowana maska filtru h
Zastosowania filtrów górnoprzepustowych obraz rozmyty obraz po filtracji górnoprzepustowej, z zachowaniem wartości średniej
mikroskopowy obraz komórek skóry obraz po filtracji górnoprzepustowej, z zachowaniem wartości średniej
Filtracja w dziedzinie przestrzennej - filtry nieliniowe Obraz wynikowy tworzony jest na podstawie ograniczonej liczby punktów obrazu źródłowego Punkty obrazu wynikowego są nieliniową funkcją punktów obrazu źródłowego (ewentualnie również elementów masek)
Filtr medianowy Co to jest mediana??? Mediana jest jednym z kwantyli. Kwantyle dzielą dany zbiór na części pod względem liczby jednostek spełniających określoną relację (np. relację większości)
Mediana dzieli zbiór na dwie równoliczne części. Ma wartość większą (bądź równą) od połowy jego elementów oraz ma wartość mniejszą (bądź równą) od połowy jego elementów. {, 5, 7, 88, 89} {,, 7, 7, 7} {,, 7, 7} {, 5, 28, 44}
Wyznaczanie punktów obrazu dla filtru medianowego h f(x,y) g(x,y)=mediana {f(x,y); (x,y) h} g(x,y) obraz oryginalny f obraz po filtracji g
Podstawowym zadaniem przy wyznaczaniu mediany dla zbioru jest jego uporządkowanie (sortowanie). Jednym z prostych i wydajnych algorytmów sortowania jest tzw. algorytm sortowania bąbelkowego. a[k], k=..n - wektor elementów zbioru for i:=2 to N do begin for j:=n downto i do if a[j-]>a[j] then begin x=a[j-]; a[j-]:=a[j]; a[j]:=x; end; end;
Przykład działania algorytmu dla wektora o długości 8 2 3 4 5 6 7 8 (iteracje) 44 06 06 06 06 06 06 06 55 44 2 2 2 2 2 2 2 55 44 8 8 8 8 8 42 2 55 44 42 42 42 42 94 42 8 55 44 44 44 44 8 94 42 42 55 55 55 55 06 8 94 67 67 67 67 67 67 67 67 94 94 94 94 94 Stan początkowy
Wydajność algorytmu: średnia liczba porównań Pp = 0.5(N 2 -N) średnia liczba zamian Pz = 0.75(N 2 -N) dla N=9 Pp = 36, Pz = 54 dla N=25 Pp = 300, Pz = 450 N. Wirth, Algorytmy + struktury danych = programy, WNT, Warszawa 989
Filtr medianowy [ x 3] /3*[ ] mediana średnia
Filtr medianowy - właściowości. Skutecznie usuwa zakłócenia impulsowe o liczbie punktów mniejszej niż połowa liczby punktów maski filtracji 2. Zachowuje położenie i ostrość brzegów obrazu (w przeciwieństwie do uśredniających filtrów splotowych) 3. Jasności punktów obrazu wynikowego mają wartości pochodzące od samego obrazu (nie ma potrzeby skalowania obrazu) 4. Duży koszt obliczeniowy wynikający z wymogu sortowania punktów obrazu w masce
MATLAB Demo filtr medianowy