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

Podobne dokumenty