You are on page 1of 36

Podstawowe metody przetwarzania obrazów

¾ Przekształcenia geometryczne – pełnią rolę pomocniczą w procesie


przetwarzania obrazu (przesunięcia, obroty, odbicia).
¾ Przekształcenia punktowe (bezkontekstowe) – (operacje logiczne i
arytmetyczne, normalizacja, wyrównywanie histogramu, binaryzacja).
¾ Filtracja kontekstowa
¾ Przekształcenia morfologiczne (kontekstowe)
¾ Przekształcenia widmowe (wykorzystujące transformację Fouriera)
Przekształcenia kontekstowe obrazu

Przekształcenia kontekstowe obrazu cyfrowego są to przekształcenia dotyczące


stopnia szarości lub intensywności barwy poszczególnych punktów (pikseli) obrazu.
Cechą charakterystyczną kontekstowych przekształceń obrazu jest to, że dla
wyznaczenia wartości jednego punktu obrazu wynikowego trzeba dokonać określonych
obliczeń na wielu punktach obrazu źródłowego.
Zwykle polega to na wyznaczeniu wartości funkcji, której argumentami są wartość
piksela o tym samym położeniu na obrazie źródłowym oraz wartości pikseli z jego
otoczenia, które w ogólnym przypadku może mieć różną formę, ale najczęściej
utożsamiane jest z kwadratowym „oknem” otaczającym symetrycznie aktualnie
przetwarzany punkt obrazu.
Filtracja kontekstowa obrazu
Przekształcenia kontekstowe obrazu mogą być wykonywane metodami filtracji
kontekstowej obrazu nazywanej również filtracją obrazu w dziedzinie przestrzennej
/w dziedzinie obrazu/ (ang. real space filtering – w odróżnieniu od filtracji obrazu w
dziedzinie częstotliwości /w dziedzinie Fouriera/ – ang. Fourier space filtering).
Filtrację kontekstową obrazu wykonuje się w celu:
¾ stłumienia w obrazie niepożądanych szumów (zakłóceń);
¾ wykrycia lub wzmocnienia w obrazie pewnych elementów;
¾ korekcji określonych wad obrazu.

Właściwości filtru kontekstowego wynikają wprost z analitycznych własności


realizującej go funkcji. W związku z tym filtry kontekstowe możemy podzielić na
dwie kategorie dotyczące sposobu filtracji:
z filtry liniowe (dokonujące filtracji na podstawie określonej operacji liniowej,
wykonanej na zdefiniowanym otoczeniu pikseli);
z filtry nieliniowe (dokonujące filtracji na podstawie określonej operacji
nieliniowej, wykonanej na zdefiniowanym otoczeniu pikseli).
Z matematycznego punktu widzenia filtracja kontekstowa polega na splataniu maski
filtra (szablonu strukturalnego definiującego otoczenie piksela) z macierzą obrazu
źródłowego.
Maską (matrycą) filtra w jest zazwyczaj macierz kwadratowa o rozmiarze
(2⋅K+1)×(2⋅K+1) (często 3×3), której element centralny „wskazuje” punkt (piksel)
obrazu źródłowego podlegający filtracji, a liczba wierszy i kolumn określa rozmiar
otoczenia (kontekstu) przetwarzanego punktu (piksela). W ogólnym przypadku
współrzędne (mc,nc) elementu centralnego maski filtra określa zależność:
[mc nc] = floor((size(w)+1)/2)
Realizację liniowej filtracji kontekstowej można zapisać w sposób następujący:
K K
L2 ( m, n ) = ∑ ∑
i =− K j =− K
L1 ( m + i, n + j ) ⋅ w( K − i + 1, K − j + 1)

gdzie symbole L1(m,n) i L2(m,n) oznaczają wartość poziomu jasności (poziomu szarości
lub intensywności barwy) punktu (piksela) o współrzędnych m i n odpowiednio obrazu
źródłowego i przefiltrowanego.
W sytuacji, gdy maska filtra jest symetryczna względem swych obydwu głównych
przekątnych, liniową filtrację kontekstową obrazu można wykonać posługując się filtrem
o skończonej odpowiedzi impulsowej (SOI, ang. FIR – Finite Impulse Response), co
można zapisać formalnie w sposób następujący:
K K
L2 ( m, n ) = ∑ ∑
i =− K j =− K
L1 ( m + i, n + j ) ⋅ w( K + i + 1, K + j + 1)

rotacja maski filtra o 180°


Realizację filtracji obrazu filtrem SOI można przedstawić następująco:
„przesuwaj centrum maski nad wszystkimi pikselami i jako nową wartość piksela przyjmuj
każdorazowo sumę mnożeń cząstkowych elementów maski przez przykrywane nimi
piksele”.

L1 =

w=

L2(3,2) = 8·(-1) + 7·(-1) + 10·(-1) + 14·(-1) + 13·8 + 8·(-1) + 1·(-1) + 12·(-1) + 5·(-1) = 39
Z filtracją nieliniową mamy do czynienia wtedy, kiedy sumowanie zostaje zastąpione
nieliniowym operatorem Ow działającym na cząstkowych wynikach uzyskanych w
rezultacie mnożeń elementów maski przez przykrywane nimi piksele:

L2 ( m, n ) = Ow [ L1 ( m + i, n + j ) ⋅ w( K + i + 1, K + j + 1)]

gdzie: i, j = –K, ... , 0, ... , K.

W przypadku nieliniowego filtra kontekstowego, elementy maski filtra w zwykle wynoszą 1,


co oznacza, że filtr nieliniowy realizuje swoją operację bezpośrednio na zbiorze punktów
(pikseli) tworzącym lokalne otoczenie przetwarzanego punktu (piksela).
Operacje wykonane na zdefiniowanym otoczeniu piksela mogą prowadzić do ustalenia
takiej wartości poziomu jasności punktu (piksela) obrazu przefiltrowanego, która
przekracza dopuszczalny zakres. Dlatego pełna operacja filtracji kontekstowej obejmuje
w pewnych przypadkach także normalizację obrazu przefiltrowanego, która może
odbywać się według formuły:

L3 _ high − L3 _ low
L3 ( m, n ) = ⋅ [ L2 ( m, n ) − L2 _ min] + L3 _ low
L2 _ max − L2 _ min

gdzie:
– symbole L2(m,n) i L3(m,n) oznaczają wartość poziomu jasności punktu (piksela) o
współrzędnych m i n odpowiednio obrazu przefiltrowanego i wynikowego,
– oznaczenia L2_min i L2_max symbolizują odpowiednio minimalną i maksymalną
wartość poziomu jasności obrazu przefiltrowanego,
– symbole L3_low i L3_high oznaczają odpowiednio najniższą i najwyższą dopuszczalną
wartość poziomu jasności obrazu wynikowego.
Z powodu kontekstowości wykonywanych operacji, pojawia się problem filtracji
„brzegu” obrazu. Na „brzegu” obrazu brakuje wartości niektórych argumentów funkcji,
będącej matematycznym zapisem reguły działania filtra.

Istnieją różne metody rozwiązania


tego problemu.

W Matlabie stosuje się następujące metody wyznaczania wartości funkcji, będącej


matematycznym zapisem reguły działania filtra:

¾ valid;
¾ same;
¾ full.
¾ valid – wartość funkcji jest wyznaczana tylko
dla tych punktów (pikseli) obrazu, dla których
całe ich otoczenie, zdefiniowane maską filtra,
zawiera się w obrazie;
¾ same – wartość funkcji jest wyznaczana dla
wszystkich punktów (pikseli) obrazu, a
brakujące wartości argumentów funkcji są
uzupełniane zerami (wymiary obrazu
źródłowego i wynikowego są takie same);
¾ full – wartość funkcji jest wyznaczana wtedy,
gdy choć jeden element maski filtra zawiera
się w obrazie, a brakujące wartości
argumentów funkcji są uzupełniane zerami.
Filtry liniowe

Właściwości liniowych filtrów kontekstowych wynikają z analitycznych własności


stosowanych funkcji. W związku z tym wyróżniamy następujące rodzaje filtrów
liniowych:

¾ filtry uśredniające (wygładzające) – dolnoprzepustowe;


¾ filtry wykrywające krawędzie – górnoprzepustowe;
¾ filtry wykrywające narożniki – górnoprzepustowe;
¾ filtry wyostrzające.
Filtry uśredniające (wygładzające) – dolnoprzepustowe (1)

Filtry uśredniające to takie filtry, w których wartość przefiltrowanego punktu (piksela)


jest średnią arytmetyczną lub wagową pierwotnej wartości piksela i wartości pikseli z
jego otoczenia. Standardowy filtr uśredniający ma maskę:

Standardowy filtr uśredniający usuwa drobne zakłócenia


z obrazu, wygładza drobne zawirowania krawędzi oraz
usuwa efekty falowania jasności. Ma jednak także i
niekorzystne działanie, ponieważ powoduje “rozmycie”
konturów obiektów i pogorszenie wyrazistości kształtów.

W celu zmniejszenia negatywnych skutków


standardowej filtracji uśredniającej stosuje
się zmodyfikowane filtry uśredniające, w
których ulega zwiększeniu wpływ
pierwotnej wartości piksela na wartość
piksela po filtracji. Przykładem maski
takiego filtra może być następująca maska:
Filtry uśredniające (wygładzające) – dolnoprzepustowe (2)

Odmianą filtra uśredniającego jest filtr Gaussa. Dwuwymiarowa funkcja Gaussa, w


odniesieniu do maski filtra, ma postać:

1 i2 + j2
G (i , j ) = ⋅ exp[ − ]
2 ⋅π ⋅σ 2 2 ⋅σ 2
gdzie:
σ – odchylenie standardowe;
i, j – współrzędne punktu (piksela) maski (i, j = –K/2, ... , 0, ... , K/2);
(K+1)×(K+1) – rozmiar maski filtra.

Znormalizowana maska filtra Gaussa (σ = 0,5; K = 2) ma następującą postać:


Filtry wykrywające krawędzie – górnoprzepustowe (1)
Filtry tego rodzaju służą do uwypuklenia krawędzi na obrazie. Krawędzie są składnikami
obrazu odpowiedzialnymi za szybkie zmiany jasności. W wyniku działania filtra obszary
obrazu, w których występują szybkie zmiany jasności, są wyeksponowane, inne natomiast
są stłumione.
Ogólną ideą leżącą u podstaw większości metod wykrywania krawędzi jest
wykorzystywanie lokalnych pochodnych funkcji jasności obrazu, uwypuklających
występowanie zmian jasności w obrazie.
Wśród filtrów odwołujących się do pierwszej pochodnej (tzw. filtry gradientowe)
wyróżnić należy filtr Prewitta i filtr Sobela.
Filtry wykrywające krawędzie – górnoprzepustowe (2)

Konieczność stosowania kierunkowych postaci masek wynika z kierunkowych własności


filtrów gradientowych – gradient podkreśla krawędzie o pewnej ustalonej orientacji,
zależnej od postaci używanej maski (np. w wyniku zastosowania maski poziomej
wyeksponowane zostają krawędzie o orientacji zbliżonej do horyzontalnej).

W przypadku, gdy musimy uwolnić się od kierunkowego działania i wykryć w obrazie


wszelkie krawędzie, niezależnie od tego pod jakim kątem są usytuowane, rozwiązaniem
mogą być filtry odwołujące się do drugiej pochodnej (tzw. filtry laplasjanowe). Typowe
maski filtrów laplasjanowych mają następującą postać:
Filtry wykrywające krawędzie – górnoprzepustowe (3)
Odmianą filtra laplasjanowego jest filtr zwany laplasjanem gaussowskim (LoG – ang.
Laplacian of Gauss). Dwuwymiarowy laplasjan gaussowski, w odniesieniu do maski filtra,
ma postać:
(i 2 + j 2 − 2 ⋅ σ 2 ) i2 + j2
LoG (i, j ) = ⋅ exp[ − ]
2 ⋅π ⋅σ 6 2 ⋅σ 2
gdzie:
σ – odchylenie standardowe;
i, j – współrzędne punktu (piksela) maski (i, j = –K/2, ... , 0, ... , K/2);
(K+1)×(K+1) – rozmiar maski filtra.
Znormalizowana maska filtra Gaussa (σ = 0,5; K = 2) ma następującą postać:
Ostateczne wytyczenie krawędzi odbywa się zazwyczaj z
wykorzystaniem algorytmu zero-crossing. Polega on na
sprawdzeniu różnicy wartości laplasjanu danego piksela z
jego dwoma sąsiadami. Jeżeli dla któregoś sąsiada różnica
jest większa od pewnego przyjętego progu oraz laplasjan
przetwarzanego piksela i jego sąsiada mają różne znaki, to
przetwarzany piksel staje się punktem krawędzi.
Filtry wykrywające narożniki – górnoprzepustowe
Filtry tego rodzaju służą do uwypuklenia na obrazie krawędzi w formie narożników.
Wyeksponowania narożników można dokonać splatając macierz obrazu z maską filtra
zawierającą wzorzec danej krawędzi. Przykładem takiego filtra może być filtr Robinsona.
Pełny zbiór masek filtra Robinsona (które powstały w wyniku obracania maski
podstawowej), wraz z zaznaczeniem, którego narożnika dotyczą, przedstawiono poniżej:

Konieczność stosowania kierunkowych postaci masek wynika z kierunkowych własności


filtra Robinsona – filtr podkreśla krawędzie o pewnej ustalonej orientacji, zależnej od
postaci używanej maski.
Filtry wyostrzające

Obraz wyostrzony można uzyskać sumując z odpowiednią wagą obraz źródłowy i obraz
przefiltrowany filtrem górnoprzepustowym. Maskę takiego filtra tworzy się składając ze
sobą maskę neutralną i maskę filtra górnoprzepustowego. Z uwagi na pożądane
bezkierunkowe własności filtra górnoprzepustowego zazwyczaj stosuje się w tym
przypadku filtry laplasjanowe. Przykładowe maski filtrów wyostrzających mają
następującą postać:
Filtracja obrazu filtrem gradientowym
Filtracja obrazu filtrem laplasjanowym (1)
Filtracja obrazu filtrem laplasjanowym (2)
Filtracja obrazu filtrem wyostrzającym (1)
Filtracja obrazu filtrem wyostrzającym (2)
Filtry nieliniowe

Właściwości nieliniowych filtrów kontekstowych wynikają z własności stosowanych


nieliniowych operatorów. W związku z tym możemy wyróżnić następujące rodzaje
filtrów nieliniowych:

¾ filtry medianowe;
¾ filtry ekstremalne;
¾ filtry kombinowane wykrywające krawędzie.
Filtry medianowe
Filtry medianowe to takie filtry, w których wartość przefiltrowanego punktu (piksela) jest
medianą z pierwotnej wartości piksela i wartości pikseli z jego otoczenia.
Mediana to w uproszczeniu wartość środkowa w uporządkowanym rosnąco ciągu wartości
pikseli całego otoczenia przetwarzanego piksela.
Filtracja medianowa nie wprowadza do obrazu nowych wartości pikseli, obraz po
wykonaniu tej filtracji nie wymaga zatem normalizacji.
Filtr medianowy skutecznie usuwa zakłócenia, nie powodując przy tym rozmazywania
obrazu (na ogół nie pogarsza ostrości krawędzi obecnych na obrazie).
Filtry ekstremalne
Na podobnej zasadzie co filtry medianowe działają dwa filtry ekstremalne: minimalny i
maksymalny.
W tym przypadku wartość przefiltrowanego punktu (piksela) jest wartością ekstremalną
(odpowiednio minimalną i maksymalną) ze zbioru zawierającego pierwotną wartość
piksela i wartości pikseli z jego otoczenia.
Zastosowanie filtra minimalnego powoduje zmniejszenie, a zastosowanie filtra
maksymalnego zwiększenie średniej jasności obrazu.
Filtracja ekstremalna nie wprowadza do obrazu nowych wartości pikseli, obraz po
wykonaniu tej filtracji nie wymaga zatem normalizacji.
Filtracja obrazu filtrem medianowym i uśredniającym (1)

mediana
Filtracja obrazu filtrem medianowym i uśredniającym (2)

mediana
Filtracja obrazu filtrem medianowym
o coraz większym rozmiarze maski filtra

3×3 5×5 7×7 9×9


Filtracja obrazu filtrami ekstremalnymi

minimalny

maksymalny
Filtry kombinowane wykrywające krawędzie
Idea filtrów kombinowanych polega na oddzielnym zastosowaniu dwóch filtrów
gradientowych w prostopadłych do siebie kierunkach, a następnie na dokonaniu
nieliniowej kombinacji wyników tych filtracji.
Dzięki nieliniowej kombinacji rezultatów takich liniowych przekształceń obrazu tworzy
się obraz wynikowy o wyjątkowo dobrze podkreślonych konturach, niezależnie od
kierunku ich przebiegu. Filtry kombinowane potrafią lokalizować krawędzie dokładniej i
w sposób bardziej pewny niż filtry laplasjanowe.
Filtry kombinowane są zazwyczaj budowane na bazie filtrów Prewitta lub Sobela.
Typowym sposobem łączenia (kombinowania) wyników filtracji gradientowej G1 i G2 jest
formuła euklidesowa:
G (m, n ) = (G1 (m, n )) 2 + (G2 (m, n )) 2

Końcowym etapem wykrywania krawędzi jest wykonanie cieniowania krawędzi (ang. edge
thinning). Najprostszym sposobem cieniowania krawędzi jest progowanie z minimalnym
progiem. Przyjmujemy wtedy, że krawędź występuje jeżeli wartość gradientu przewyższa
zadany próg, co odpowiada eliminacji z finalnej mapy krawędzi “słabych” elementów
krawędziowych.
Filtracja obrazu filtrem kombinowanym

filtr kombinowany zbudowany


na bazie filtru Sobela

prog = 0.1;
Filtr Canny'ego (1)

Szczególnym przypadkiem filtra kombinowanego jest filtr działający według algorytmu


Canny'ego. Kroki algorytmu Canny'ego są następujące:

¾ Wygładź obraz za pomocą filtra Gaussa (o odchyleniu standardowym σ).


¾ Wykonaj sploty wygładzonego obrazu z pionowym i poziomym gradientem
cząstkowym filtra Gaussa (o odchyleniu standardowym σ).
¾ Traktując otrzymane obrazy jako składowe pionowe i poziome gradientu,
dokonaj łączenia (kombinowania) składowych formułą euklidesową.
¾ Wykonaj normalizację wartości otrzymanego modułu gradientu.
¾ Znajdź potencjalne punkty (piksele) tworzące krawędzie wykrywając lokalne
maksima znormalizowanego modułu gradientu (szukamy pikseli, które znajdują
się na “grzbietach” mapy krawędzi – tzw. tłumienie niemaksymalne – ang. Non-
Maximal Suppression).
Filtr Canny'ego (2)

¾ Wyznacz krawędzie stosując progowanie z histerezą, aby zminimalizować


występowanie fałszywych krawędzi. Kandydujący segment krawędzi jest
dodawany do finalnej mapy krawędzi, jeżeli przynajmniej jeden z jego pikseli
ma znormalizowany moduł gradientu wyższy niż wysoki próg pH, lecz nie
posiada piksela ze znormalizowanym modułem gradientu niższym niż niski próg
pL (“słabe” krawędzie są włączane do finalnej mapy krawędzi tylko wtedy, gdy
są połączone z “silnymi” krawędziami). Zwykle przyjmuje się, że pH ≈ 2÷3⋅pL.

Algorytm Canny'ego jest dosyć skomplikowany, ale to on jest najczęściej


stosowanym filtrem do wykrywania krawędzi. Zaletą metody Canny'ego jest
możliwość skutecznej detekcji krawędzi w obrazach zaszumionych.
Filtracja obrazu filtrem Canny'ego

sigma = 1;
progi = [0.16 0.40];

sigma = 4;
progi = [0.08 0.2];

You might also like