Filtracja w domenie przestrzeni 1 Filtracja 2 Filtracja liniowa
Transkrypt
Filtracja w domenie przestrzeni 1 Filtracja 2 Filtracja liniowa
Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] 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: X L2(m, n) = (w × L1)(m, n) = L1(m − p, n − q)w(p, q), (1) p,q∈M F 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=0; '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 2.1 Filtracja liniowa 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]/10. 1 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 2.2 copyright: M. Dwornik [email protected] 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): 1 0 −1 1 0 −1 1 0 −1 1 1 1 0 0 0 −1 −1 −1 2.2.2 Operator Sobela 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): 1 0 −1 −2 1 0 −1 1 2 1 0 0 −1 −2 −1 0 2 0 2.2.3 Operator Robertsa Operatory Robertsa to osiem masek, obracanych o 45 stopni wzgl¦dem siebie. " 0 1 −1 0 # " 0 0 −1 1 # " −1 0 0 1 # " −1 0 1 0 # 2.2.4 Operator Nevatia-Babu Operator Nevatia-Babu bazuje na obszarze 5x5 i wyznacza gradienty dla kierunków 0o , 30o i 60o (od lewej do prawej). 100 100 100 100 100 100 100 100 100 100 0 0 0 0 0 −100 −100 −100 −100 −100 −100 −100 −100 −100 −100 100 100 100 −32 −100 100 100 92 −78 −100 100 100 0 −100 −100 100 78 −92 −100 −100 100 32 −100 −100 −100 2 100 100 100 100 100 100 100 100 78 −32 100 92 0 −92 −100 32 −78 −100 −100 −100 −100 −100 −100 −100 −100 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] 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 45o . Pozwala to lepiej wyodr¦bni¢ maksymaln¡ amplitud¦ z o±miu kierunków ltracji. Pierwsze trzy maski dane s¡ nast¦puj¡cymi tablicami: −3 −3 5 90 M F −3 0 5 −3 −3 5 −3 5 5 45 5 M F −3 0 −3 −3 −3 5 5 5 0 M F = −3 0 −3 −3 −3 −3 2.2.6 Skªadanie ltracji 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: s W ynik = ∂I ∂x 2 + ∂I ∂y 2 (2) • wg Normy L1 - warto±¢ ltracji uzyskujemy w wyniku zªo»enia przy u»yciu normy maksimum obrazów po ltracji: ∂I ∂I W ynik = max , ∂x ∂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) ∂ 2 I(x, y) + ∂x2 ∂y 2 (4) Suma elementów maski laplasjanów mo»e by¢ równa 0 (wykrywanie kraw¦dzi) lub 1 (wyostrzanie obrazu). Jest to ltracja izotropowa. Do najcz¦±ciej spotykanych masek laplasjanów zaliczamy: 0 −1 0 −1 5 −1 0 −1 0 −1 −1 −1 −1 9 −1 −1 −1 −1 0.25 0.5 0.5 0.5 0.5 0.5 0.25 0.5 0.5 0 −0.5 0 0.5 0.5 0.5 0 −0.75 −1.5 −0.75 0 0.5 0.5 −0.5 −1.5 −2 −1.5 −0.5 0.5 0.5 0 −0.75 −1.5 −0.75 0 0.5 0.5 0.5 0 −0.5 0 0.5 0.5 0.25 0.5 0.5 0.5 0.5 0.5 0.25 3 −1 −1 −1 −1 8 −1 −1 −1 −1 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 2.3 copyright: M. Dwornik [email protected] 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: (5) h = ones(N, M )/(N · M ) • ('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 σ = 0.05. Maska ltru h jest tworzona w nast¦puj¡cy sposób: −(n21 + n22 ) 2σ 2 hg (n1 , n2 ) h(n1 , n2 ) = P P n1 n2 hg (n1 , n2 ) (6) hg (n1 , n2 ) = exp (7) • ('laplacian', alpha) dwuwymiarowy laplasjan, α ∈ (0, 1), domy±lnie 0.2. Maska jest tworzona w nast¦puj¡cy sposób: α 1−α α 1 1 − α −4 1 − α + ≈ 52 = ∂x2 ∂y 2 α+1 α 1−α α ∂2 ∂2 • ('log', rozmiar,sigma) laplasjan ltru gaussowskiego. Rozmiar domy±lny to [5 5],a σ = 0.5. Filtr h jest tworzony z wykorzystaniem wzoru 6: h(n1 , n2 ) = (n21 + n22 − 2σ 2 )hg (n1 , n2 ) P P 2πσ 6 n1 n2 hg (8) • ('motion', len, theta) aproksymacja przesuwania si¦ kamery. Len okre±la dªugo±¢ przesuni¦cia (9) pod k¡tem θ (domy±lnie k¡t=0) • 'prewitt', 'sobel' - horyzontalna maska Prewitta, Sobela • ('unsharp', alpha) - ltr rozmywaj¡cy, dziaªanie odwrotne do laplasjanu. Filtr jest tworzony na podstawie wzoru: −α α − 1 −α 1 h= α−1 α+5 α−1 α+1 −α α − 1 −α 2.4 Operatory kraw¦ dziowe kolorowe 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 sposoby1 : 1. z wykorzystaniem normy Euklidesowej: D(P 1, P 2) = q (R1 − R2)2 + (G1 − G2)2 + (B1 − B2)2 1 (9) Opis kolorowych operatorów kraw¦dziowych oraz dziaªania ltru Canny pochodzi z: Kasprzak, W. (2009), Rozpoznawanie obrazów i sygnaªów mowy, Ocyna Wydawnicza Politechniki Warszawskiej, Warszawa 4 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] 2. z wykorzystaniem normy L1: D(P 1, P 2) = |R1 − R2| + |G1 − G2| + |B1 − B2| (10) 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| 3 (12) 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 2014b 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: E=− N X log p(n) · p(n) (13) n=0 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 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] • edge(obraz,'Sobel', próg, 'kierunek', 'opcje'). Wykorzystuje ona mask¦ So- bela. 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 = 0.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 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] • 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=0 i σ 2 =0.01; • 'localvar' - szum gaussowski o ±redniej m=0 i wariancji zale»nej od otoczenia punk- tu. 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=0.05; • '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=0 i wariancji σ 2 . Domy±lnie σ 2 =0.04; 7