Filtracja w domenie przestrzeni 1 Filtracja Filtracja liniowa jest procesem splotu (konwolucji) obrazu z mask (ltrem). Dla dwuwymiarowej i dyskretnej funkcji ltracja dana jest wzorem: L2(m, n) = (w L1)(m, n) = L1(m p, n q)w(p, q), (1) p,q MF gdzie w(p,q) - maska ltru MF Do ltracji sªu»y polecenie imfilter(obraz, maska, opcje); Dost pne opcje s pogrupowane w 3 kategoriach: Opcje zwi zane z brzegiem obrazu: X - punkty le» ce na zewn trz obszaru, a pokryte mask, maj przypisan warto± X. Domy±lnie X=; 'symmetric' - potrzebne obszary s tworzone poprzez odbicie symetryczne 'replicate' - potrzebne obszary s tworzone poprzez kopiowanie brzegowych warto±ci 'circular' - potrzebne obszary s doklejane cyklicznie Opcje zwi zane z rozmiarem wyj±ciowym: 'same' - obraz wyj±ciowy ma taki sam rozmiar jak wej±ciowy 'full' - obraz wyj±ciowy jest wi kszy ni» wej±ciowy algorytm ltracji 'corr' - ltracja jest dokonywana z wykorzystaniem funkcji korelacji. 'conv' - wielowymiarowa ltracja z wykorzystaniem splotu. Poprzez mask nale»y rozumie macierz o wymiarach PxQ (najcz ±ciej kwadratow o nieparzystym wymiarze), której element centralny wskazuje punkt obrazu cyfrowego podlegaj cemu ltracji. 1.1 Rodzaje ltracji Filtracj mo»na podzieli na wzgl dem kilku kryteriów: wg pasma przepuszczania: np. dolno-, górno-, pasmoprzepustowe; wg liniowo±ci: liniowe i nieliniowe. wg istnienia uprzywilejowanych kierunków dziaªania: izotropowe, anizotropowe 2 Filtracja liniowa 2.1 Filtracja dolnoprzepustowa Przypisuj one elementowi centralnemu ±redni z obszaru pokrytego mask. Stosuje si do tego maski typu: MF=ones(3)/9, MF=ones(5)/25. Dziaªanie tego rodzaju ltru powoduje na ogóª rozmycie kraw dzi, generalizacj obrazu oraz zaw»enie zakresu intensywno±ci. Cech charakterystyczn tej ltracji jest,»e suma elementów maski równa si 1. Najcz - ±ciej spotykane maski bazuj na ±redniej wa»onej, gdzie waga elementu centralnego jest wi ksza od pozostaªych, np. MF=1 1 1; 1 2 1; 1 1 1/1. 1
2.2 Filtracja górnoprzepustowa Filtracja górnoprzepustowa sªu»y do wyeksponowania detali i zmienno±ci na obrazach, takich jak kraw dzie, naro»niki, pojedyncze punkty. Wykorzystuje si do tego pierwsze i drugie pochodne intensywno±ci. Najcz ±ciej u»ywanymi operatorami s : gradienty Robertsa, Sobela czy Prewitta oraz laplasjany. 2.2.1 Operator Prewitta Operator ten jest oparty o pierwsz pochodn. Wykorzystuje on nast puj ce maski (po lewej maska horyzontalna, po prawej wertykalna): 2.2.2 Operator Sobela 1 1 1 Operator ten jest oparty o u±rednion pochodn dyskretn, gdzie warto± pochodnej liczonej przez ±rodek ma dwukrotnie wieksz wag ni» pochodne liczone z elementów s siaduj cych. Wykorzystuje on nast puj ce maski (po lewej maska horyzontalna, po prawej wertykalna): 2.2.3 Operator Robertsa 1 2 1 1 2 1 2 2 Operatory Robertsa to osiem masek, obracanych o 45 stopni wzgl dem siebie. 1 1 1 1 1 1 2.2.4 Operator Nevatia-Babu Operator Nevatia-Babu bazuje na obszarze 5x5 i wyznacza gradienty dla kierunków o, 3 o i 6 o (od lewej do prawej). 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 32 1 1 1 92 78 1 1 1 1 1 1 78 92 1 1 1 32 1 1 1 1 1 1 1 1 1 1 1 78 32 1 92 92 1 32 78 1 1 1 1 1 1 1 1 2
2.2.5 Operator Kirscha Operator Kirscha polega na przypisaniu elementowi centralnemu warto±ci maksymalnej z ltracji o±mioma maskami, obróconymi wzgl dem siebie o 45 o. Pozwala to lepiej wyodr bni maksymaln amplitud z o±miu kierunków ltracji. Pierwsze trzy maski dane s nast puj cymi tablicami: MF = 5 5 5 3 3 3 3 3 2.2.6 Skªadanie ltracji MF 45 3 5 5 3 5 3 3 3 MF 9 3 3 5 3 5 3 3 5 Ze wzgl du na kierunkowo± masek (ich anizotropowo± ), w celu wykrycia wszystkich kraw dzi na obrazie konieczne jest skªadanie wyników ltracji, uzyskanych w wyniku dziaªania ortogonalnych masek. Do najcz ±ciej spotykanych metod skªadania mo»na zaliczy : wg Normy L2 - warto± ltracji uzyskujemy w wyniku zªo»enia przy u»yciu normy Euklidesowej obrazów po ltracji: ( ) I 2 ( ) I 2 W ynik = + (2) x y wg Normy L1 - warto± ltracji uzyskujemy w wyniku zªo»enia przy u»yciu normy maksimum obrazów po ltracji: ( ) I W ynik = max x, I y (3) ±rednia arytmetyczna wyników dwóch ltracji ortogonalnych. 2.2.7 Laplasjany Lapsjan jest kombinacj drugich pochodnych cz stkowych funkcji I(m,n): (wyostrzaj ce, gradientowe): L(x, y) = 2 I(x, y) x 2 + 2 I(x, y) y 2 (4) Suma elementów maski laplasjanów mo»e by równa (wykrywanie kraw dzi) lub 1 (wyostrzanie obrazu). Jest to ltracja izotropowa. Do najcz ±ciej spotykanych masek laplasjanów zaliczamy: 1 1 5 1 1 1 9 1 1 8 1.25.5.5.5.5.5.25.5.5.5.5.5.5.75 1.5.75.5.5.5 1.5 2 1.5.5.5.5.75 1.5.75.5.5.5.5.5.5.25.5.5.5.5.5.25 3
2.3 fspecial Polecenie fspecial(typ, parametry) tworzy maski specjalne. Do parametrów funkcji fspecial nale» : ('average', rozmiar) ltr u±redniaj cy. Warto± domy±lna to 3 3. Maska ltru jest liczona wedªug wzoru: h = ones(n, M)/(N M) (5) ('disk', promie«) u±redniaj ca maska koªowa. Promie«domy±lnie = 5; ('gaussian', rozmiar, sigma) dolnoprzepustowy ltr gaussowski o symetrii koªowej. Warto±ci domy±lne to 3 3 i σ =.5. Maska ltru h jest tworzona w nast puj cy sposób: h g (n 1, n 2 ) = exp (n2 1 + n2 2 ) 2σ 2 (6) h(n 1, n 2 ) = h g (n 1, n 2 ) n 1 n 2 h g (n 1, n 2 ) ('laplacian', alpha) dwuwymiarowy laplasjan, α (, 1), domy±lnie.2. Maska jest tworzona w nast puj cy sposób: 2 = 2 x 2 + 2 y 2 1 α 1 α α 1 α 4 1 α α + 1 α 1 α α ('log', rozmiar,sigma) laplasjan ltru gaussowskiego. Rozmiar domy±lny to 5 5,a σ =.5. Filtr h jest tworzony z wykorzystaniem wzoru 6: h(n 1, n 2 ) = (n2 1 + n2 2 2σ2 )h g (n 1, n 2 ) 2πσ 6 n 1 n 2 h g (8) ('motion', len, theta) aproksymacja przesuwania si kamery. Len okre±la dªugo± przesuni cia (9) pod k tem θ (domy±lnie k t=) 'prewitt', 'sobel' - horyzontalna maska Prewitta, Sobela ('unsharp', alpha) - ltr rozmywaj cy, dziaªanie odwrotne do laplasjanu. Filtr jest tworzony na podstawie wzoru: h = 1 α + 1 2.4 Operatory kraw dziowe kolorowe α α 1 α α 1 α + 5 α 1 α α 1 α Filtracja realizowana jest jako suma ró»nic trzech par punktów le» cych symetrycznie wzgl dem punktu centralnego. Ró»nic dwóch D punktów P1(R,G,B) i P2(R,G,B) mo-»emy zdeniowa na 4 sposoby 1 : 1. z wykorzystaniem normy Euklidesowej: D(P 1, P 2) = (R1 R2) 2 + (G1 G2) 2 + (B1 B2) 2 (9) 1 Opis kolorowych operatorów kraw dziowych oraz dziaªania ltru Canny pochodzi z: Kasprzak, W. (29), Rozpoznawanie obrazów i sygnaªów mowy, Ocyna Wydawnicza Politechniki Warszawskiej, Warszawa (7) 4
2. z wykorzystaniem normy L1: D(P 1, P 2) = R1 R2 + G1 G2 + B1 B2 (1) 3. jako maksimum z warto±ci bezwzgl dnych poszczególnych skªadowych: D(P 1, P 2) = max ( R1 R2, G1 G2, B1 B2 ) (11) 4. jako ±rednia wa»ona warto±ci bezwzgl dnych ró»nic poszczególnych skªadowych: D(P 1, P 2) = ω 1 R1 R2 + ω 3 G1 G2 + ω 3 B1 B2 (12) 3 Filtracja nieliniowa Istnieje równie» caªa gama ltrów, których dziaªanie zale»y od np. uporz dkowania obrazu. S to np. ltry medianowe, maksymalizuj ce, minimalizuj ce czy entropii, które przypisuj ltrowanemu punktowi odpowiednio median, maksimum, minimum i entropi z obszaru pokrytego mask. W pakiecie MatLAB 214b zostaªy zdeniowane nast puj ce metody ltracji: medfilt2(obraz, rozmiar); - ltracja medianowa rangefilt(obraz, zasi g) - zwraca ró»nic pomi dzy maksimum i minimum intensywno±ci dla pikseli otoczenia zdeniowanych w tablicy zasi g, np. ones(3). entropyfilt(obraz, zasi g); - zwraca warto± entropii E w blokach o zadanym rozmiarze (domy±lnie 9x9 pikseli), obliczon wg wzoru: N E = log p(n) p(n) (13) n= N - ilo± poziomów intensywno±ci p(n) - prawdopodobie«stwo wyst pienia piksela o intensywno±ci n stdfilt(obraz, zasi g) - dla ka»dego piksela zwraca warto± odchylenia standardowego z otoczenia. 3.1 Operacje blokowe Inn mo»liwo±ci tworzenia ltrów nieliniowych s tzw. operacje blokowe. Do implementacji tego typu ltrów sªu» polecenie nlfilter(obraz, rozmiar, funkcja), np.: nlfilter(obraz, 3 3, 'min(x(:))'). Cechuj si one znacznie dªu»szym czasem dziaªania ni» gotowe funkcje, dlatego je»eli istniej gotowe funkcje ltruj ce (jak np. medfilt2), nale»y z nich korzysta, a operacje blokowe stosowa tylko w ostateczno±ci. 3.2 Funkcja edge Do wykrywania naro»y mo»e równie» sªu»y funkcja edge(obraz, 'metoda', parametry). Funkcja ta na wej±ciu przyjmuje obraz monochromatyczny, a zwraca map logiczn, gdzie warto± logiczn "1" ma wykryty naro»nik. Funkcja ta posiada 6 metod detekcji kraw dzi (zarówno liniowych, jak i nieliniowych): 5
edge(obraz,'sobel', próg, 'kierunek', 'opcje'). Wykorzystuje ona mask Sobela. Dozwolone s nast puj ce kierunki: 'horizontal', 'vertical', 'both'. Do opcji zaliczamy operacj 'thinnning' i 'nothinning' edge(obraz,'prewitt', próg, 'kierunek'). Operator Prewitta, parametry analogicznie do Sobela. edge(obraz,'roberts', próg, 'kierunek', 'opcje') - ltracja wykorzystuj ca operator Robertsa. edge(obraz,'log', próg, sigma) - Laplasjan metody Gaussa. Parametr sigma okre±la standardowe odchylenie metody. Warto±ci domy±ln jest 2. Wielko± maski ltru (n n) jest liczona wedªug wzoru: n = ceil(σ 3) 2 + 1 edge(obraz,'zerocross', próg, filtr_h) edge(obraz, 'canny', θ 1, θ 2, sigma) - operator Canny. θ 1 okre±la dolny próg odci cia, θ 2 okre±la górny. Je»eli podany jest tylko jeden próg, to jest on traktowany jako górny, a dolny jest liczony wedªug wzoru: θ 1 =.4 θ 2. Sigma jest to standardowe odchylenie dla ltru gaussowskiego. Domy±lnie σ =1. Filtr Canny dziaªa w kilku krokach: 1. Wygªadzanie obrazu za pomoc ltru Gaussa o wariancji σ 2 2. Wyznaczenie obrazu kraw dziowego prostym operatorem kraw dziowym w obszarze 2x2 lub 3x3 3. Cieniowanie kraw dzi metod tªumienia niemaksymalnego - zerowanie elementów kraw dziowych nieb d cych maksymami lokalnymi 4. Cieniowanie kraw dzi metod tªumienia z progami histerezy θ 1, θ 2 Dla wszystkich tych metod, poleceniem BW, próg=edge(...) mo»na uzyska informacje o u»ytym progu detekcji kraw dzi. Dla metod gradientowych (Sobel, Prewitt, Roberts) automatyczny próg binaryzacji jest liczony na podstawie magnitudy policzonego gradientu. 4 Filtracja adaptatywna Osobn kategori ltrów nieliniowych s ltry adaptacyjne. S to ltry, których charakterystyka zmienia si w zale»no±ci od analizowanego obszaru. W celu usuwania szumu dziaªaj one dwuetapowo: 1. Dla ka»dego punktu i jego otoczenia obliczamy warto± parametru, który kwalikuje dany punkt jako nale» cy lub nie do kraw dzi. 2. je»eli dany punkt zostaª zakwalikowany jako nie nale» cy do kraw dzi, zostaje on poddany silnemu u±rednieniu. W przeciwnym wypadku jego warto± pozostaje bez zmian lub poddany zostaje u±rednieniu o niewielkiej mocy. Do ltrów tego typu zaliczamy ltr Wienera: wiener2(obraz, rozmiar) 5 Dekonwolucja Operacj odwrotn do splotu (czyli m.in. ltracji) jest dekonwolucja. Istnieje kilka technik dekonwolucji zaimplementowanych w MatLABie: Dekonwolucja ±lepa: deconvnblind Dekonwolucja przy u»yciu algorytmu Lucy-Richardsona: deconvlucy 6
Dekonwolucja przy u»yciu algorytmu Wienera: deconvwnr Dekonwolucja "unormowana": deconvreg 6 Szum Do "zaszumiania" obrazów sªu»y polecenie imnoise(obraz, typ, parametry). Podstawowymi rodzajami szumu s : 'gaussian' - szum o rozkªadzie gaussa z ±redni m i wariancj σ 2. Domy±lnie m= i σ 2 =.1; 'localvar' - szum gaussowski o ±redniej m= i wariancji zale»nej od otoczenia punktu. Aby u»y tej funkcji nale»y jako parametr doda tablic rozkªadu wariancji o rozmiarze równym zaszumionemu obrazowi. 'poisson' - szum o rozkªadzie Poissona 'salt & pepper' - zamienia warto± pixela na minimum lub maximum z dost pnej skali z g sto±ci zamiany d. Domy±lnie d=.5; 'speckle' - multiplikatywny szum zmieniaj cy warto± pixela zgodnie z równaniem: L(m, n) = L(m, n) + n L(m, n) (14) gdzie n - liczba z rozkªadu normalnego o ±redniej m= i wariancji σ 2. Domy±lnie σ 2 =.4; 7