Przeksztaªcenia morfologiczne II i operacje na obrazach logicznych

Transkrypt

Przeksztaªcenia morfologiczne II i operacje na obrazach logicznych
Analiza i Przetwarzania Obrazów Cyfrowych
IIIr Informatyki Stosowanej 2015/2016
copyright: M. Dwornik
[email protected]
Przeksztaªcenia morfologiczne II
i operacje na obrazach logicznych
1
Przeksztaªcenia morfologiczne
1.1
‘cienianie i Pogrubianie
Pogrubianie i ±cienianie: Operacje te polegaj¡ na naªo»eniu lub ±ci¡gni¦ciu wierzchniej
warstwy obiektu. W procesie ±cieniania warto±¢ punktu nie zmienia si¦, gdy SE nie pokrywa si¦ z jego s¡siedztwem lub zmienia jego warto±¢ na zero, gdy SE pasuje do s¡siedztwa rozpatrywanego punktu. W procesie pogrubiania relacje s¡ odwrotne. Do wykonywania tych operacji sªu»y polecenie bwmorph z parametrami 'thicken' i 'thin':
bwmorph(obraz, 'thin');
Elementem wykorzystywanym do ±cieniania jest maska, obracana co 90◦ :


X 1 1


 1 1 1 
1 1 1
1.2
Szkieletyzacja
Szkielet gury to zbiór wszystkich wszystkich ±rodków okr¦gów, mieszcz¡cych si¦ w caªo±ci wewn¡trz gury i maj¡cych co najmniej dwa punkty wspólne z brzegiem gury.
Szkieletyzacje wykonuje si¦ przy u»yciu nast¦puj¡cych elementów:


1 1 1


 X 1 X 
0 0 0


1 X 1


 X 1 X 
0 0 0


1 1 X


 1 1 0 
1 1 X
Do szkieletyzacji sªu»y polecenie bwmorph(obraz, 'skel');
1.3
Dylatacja bez stykania obszarów (SKIZ)
SKIZ (ang. skeleton by inuence zone) jest pomocne przy rozdzielaniu elementów cz¦±ciowo si¦ stykaj¡cych. Jako pierwszy krok wykonuje si¦ erozje, a nast¦pnie pogrubienie
nast¦puj¡cym SE:


X X X

1 1 
1 1 1

 1
Gdy przeksztaªcenie to jest stosowane cyklicznie, a» do braku zmian, uzyskuje si¦ szkielet
wpªywów (SKIZ). Strefa wpªywów danego punktu deniowana jest jako zbiór wszystkich
punktów obrazu, dla których odlegªo±¢ do danego punktu jest mniejsza ni» do pozostaªych. Przeksztaªcenie to czasami powoduje pewne artefakty (w¡skie i gª¦bokie zatoki),
które eliminuje si¦ w 3 krokach: negatyw → obci¦cie gaª¦zi → negatyw.
1
Analiza i Przetwarzania Obrazów Cyfrowych
IIIr Informatyki Stosowanej 2015/2016
1.4
copyright: M. Dwornik
[email protected]
Obcinanie gaª¦zi
Do obcinania gaª¦zi, powstaªych np. w wyniku szkieletyzacji lub wycieniania sªu»¡ nast¦puj¡ce elementy strukturalne:
0 X X


 0 1 0 
0 0 0
X 0 0


 1 1 0 
X 1 X
1.5




Pakiet bwmorph
bwmorph(obraz, 'metoda', parametr); Funkcja ta aplikuje operacje morfologiczne na
obrazie logicznym. Do metod zaliczamy:
• 'bothat' - operacja Bottom hat, która polega na odj¦ciu od zamkni¦cia obrazu
samego obrazu. Istnieje jej uogólnienie na obrazy monochromatyczne imbothat.
• 'bridge' - ª¡czy blisko siebie le»¡ce piksele.
• 'clean' - zeruje pojedy«czego piksela, otoczonego samymi zerami.
• 'close' i 'open'- zamkni¦cie i otwarcie elementem ones(3).
• 'diag' - zamienia poª¡czenia diagonalne (8-s¡siedztwo) na 4-s¡siedztwo poprzez
zmian¦ warto±ci piksela le»¡cego pod przek¡tn¡ na 1.
• 'dilate' i 'erode' - dylatacja i erozja elementem ones(3)
• 'fill' - zmienia warto±¢ zerowego piksela otoczonego samymi jedynkami na jeden.
• 'hbreak' - rozdziela H-poª¡czone piksele (w pionie i poziomie)




1 0 1


 1 1 1 
1 0 1
⇒
1 0 1


 1 0 1 
1 0 1
• 'majority' - je»eli suma maski 3x3 jest wi¦ksza lub równa 5, to element centralny
•
•
•
•
przyjmuje warto±¢ 1. Je»eli nie, to element centralny ma warto±¢ 0.
'remove' - zmienia warto±¢ ±rodkowego piksela na 0, je»eli wszyscy jego 4-s¡siedzi
maj¡ warto±¢ 1.
('shrink',n) - kurczy obiekty do punktów. W przypadku obiektu z "dziurami",
i u»ycia tej funkcji z n=inf, powstaje obwódka w pomi¦dzy granic¡ zewn¦trzn¡
i wewn¦trzn¡ obiektu. Obiekty jednorodne s¡ zmniejszane do punktu. Parametr
n oznacza ilo±¢ iteracji, przy n=inf operacja jest wykonywana do momentu, kiedy
pomi¦dzy wynikami dwóch s¡siednich iteracji nie b¦dzie ró»nicy. Efekt dziaªania tej
funkcji z parametrem n=inf (kolor czerwony) naniesiony na obraz wej±ciowy przedstawia g.1. Widoczna jest obwódka wokóª dziury oraz pojedy«czy punkt w wewn¦trznym obiekcie.
('skel',n) - szkieletyzacja. Dziaªanie parametru n jest analogiczne do funkcji
'shrink'.
'spur' - usuwa gaª¦zie, poª¡czone diagonalnie.







1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0














⇒
2
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0







Analiza i Przetwarzania Obrazów Cyfrowych
IIIr Informatyki Stosowanej 2015/2016
copyright: M. Dwornik
[email protected]
Rysunek 1: Efekt dziaªania funkcji bwmorph('shrink',inf ) zaznaczony kolorem czerwonym
• ('thicken', n) i ('thin', n) - pogrubianie i wycienianie obiektu
• 'tophat' - operacja Top hat. Funkcja zwraca ró»nice mi¦dzy obrazem, a jego otwarciem. Istnieje jej uogólnienie na obrazy monochromatyczne imtophat.
1.6
Operacje geodezyjne
Operacje geodezyjne wymagaj¡ u»ycia dwóch obrazów (obraz wej±ciowy oraz maska /
marker). W wyniku tych operacji obraz wej±ciowy jest poddawany operacji morfologicznej, a nast¦pnie porównywany z mask¡. Wyró»niamy nast¦puj¡ce operacje geodezyjne:
• dylatacja geodezyjna (o rozmiarze 1) - jest to warto±¢ minimalna z obrazu wej-
•
•
•
•
•
2
±ciowego poddanego dylatacji jednostkowym elementem strukturalnym oraz maski.
W przypadku obrazów logicznych jest to iloczyn logiczny maski oraz obrazu po
dylatacji. Zakªada si¦, »e D(obraz) ¬ maska
erozja geodezyjna (o rozmiarze 1) - jest to warto±¢ maksymalna z obrazu
wej±ciowego poddanego erozji jednostkowym elementem strukturalnym oraz maski.
W przypadku obrazów logicznych jest to suma logiczna maski oraz obrazu po erozji.
Zakªada si¦, »e E(obraz) ­ maska
rekonstrukcja przez dylatacj¦ - wykonywanie cyklicznie dylatacji geodezyjnych,
a» do braku ró»nic pomi¦dzy kolejnymi dylatacjami. Jest to najcz¦±ciej stosowana
rekonstrukcja morfologiczna.
rekonstrukcja przez erozj¦ - wykonywanie cyklicznie erozji geodezyjnych, a» do
uzyskania braku ró»nicy pomi¦dzy kolejnymi iteracjami.
otwarcie przez rekonstrukcj¦ - Polega na wykonaniu erozji zadanym elementem
strukturalnym, a nast¦pnie rekonstrukcji przez dylatacj¦.
zamkni¦cie przez rekonstrukcj¦ - Polega na wykonaniu dylatacji zadanym elementem strukturalnym, a nast¦pnie rekonstrukcji przez erozj¦.
Operacje na obrazach logicznych
Do innych operacji (ni» morfologiczne) na obrazach logicznych nale»¡ nast¦puj¡ce przeksztaªcenia i operacje:
3
Analiza i Przetwarzania Obrazów Cyfrowych
IIIr Informatyki Stosowanej 2015/2016
2.1
copyright: M. Dwornik
[email protected]
Estymacja pola powierzchni
Polecenie bwarea(obraz); podaje estymowane pole powierzchni. Warto±¢ uzyskana t¡
funkcj¡ mo»e by¢ inna od warto±ci rzeczywistej (uzyskanej funkcj¡ sum(obraz(:))). Zliczania dokonuje si¦ w otoczeniu 2x2 i na podstawie nast¦puj¡cych warunków:
•
•
•
•
•
•
2.2
0 - je»eli w otoczeniu wszystkie piksele maj¡ warto±¢ 0.
0.25 - je»eli tylko jeden piksel ma warto±¢ 1.
0.5 - je»eli dwa piksele maj¡ warto±¢ 1 i stykaj¡ si¦ bokami.
0.75 - je»eli dwa piksele maj¡ warto±¢ 1 i stykaj¡ si¦ rogami.
0.875 - je»eli 3 piksele maj¡ warto±¢ 1.
1 - je»eli wszystkie 4 piksele maj¡ warto±¢ 1.
Wyznaczanie obwodu
Polecenie bwperim(obraz, s¡siedztwo); wyznacza linie obwodu. S¡siedztwo dla obrazów 2D mo»e przyjmowa¢ warto±¢ 4 lub 8. Rozbudowaniem tej funkcji jest polecenie
D=bwboundaries(obraz, s¡siedztwo, opcje).
Jako rezultat dziaªania funkcji otrzymujemy wektor o rozmiarze równym ilo±ci izolowanych obiektów, skªadaj¡cy si¦ z tablic wspóªrz¦dnych ka»dej granicy. Jako opcje mamy
dwie mo»liwo±ci: 'noholes' i 'holes'. Na g.2 pokazano efekt dziaªania tych parametrów. Kolorem czerwonym zaznaczono granice obliczone z parametrem 'noholes'. Dzi¦ki
zastosowaniu opcji 'holes' zyskujemy, oprócz dwóch czerwonych, dodatkow¡ granic¦ zaznaczon¡ kolorem niebieskim.
Rysunek 2:
Efekt dziaªania funkcji bwboudaries z parametrami 'noholes' - kolor czerwony, i 'holes' -
czerwony + niebieski
2.3
Obliczanie odlegªo±ci
Polecenie bwdist(obraz,'metryka'); podaje odlegªo±¢ od najbli»szego piksela o warto±ci 1, przy wykorzystaniu jednej z nast¦puj¡cych metryk:
• 'euclidean': d = (m1 − m2 )2 + (n1 − n2 )2
• 'quasi-euclidean':
p
(
d=
p
|m
p1 − m2 | + ( (2) − 1)|n1 − n2 | dla |m1 − m2 | > |n1 − n2 |
( (2) − 1)|m1 − m2 | + |n1 − n2 | dla |m1 − m2 | ¬ |n1 − n2 |
4
Analiza i Przetwarzania Obrazów Cyfrowych
IIIr Informatyki Stosowanej 2015/2016
copyright: M. Dwornik
[email protected]
• 'chessboard': d = max(|m1 − m2 |, |n1 − n2 |)
• 'cityblock': d = |m1 − m2 | + |n1 − n2 |
2.4
Liczba Eulera
bweuler(obraz, s¡siedztwo); - podaje warto±¢ liczby Eulera. Jest to ilo±¢ obiektów
wyst¦puj¡cych na obrazie binarnym, pomniejszona o ilo±¢ dziur w tych obiektach. S¡siedztwo przyjmuje warto±¢ 4 lub 8.
2.5
Wypeªnianie dziur w obiektach
Do wypeªniania dziur w obiektach sªu»y polecenie:
imfill(obraz, s¡siedztwo, lokalizacja, 'holes');
We wcze±niejszych wersjach biblioteki jest to funkcja bwfill. W przypadku obrazów lo-
gicznych wypeªnia wskazane myszk¡ lub poprzez podanie wspóªrz¦dnych punktu obszaru
zªo»onego z zer wewn¡trz gury. Dodanie parametru 'holes' wypeªnia wszystkie dziury na
obrazie. W przypadku obrazu monochromatycznego poprzez dziur¦ rozumie si¦ obszary
zbudowane z pikseli o mniejszej intensywno±ci ni» otoczenie.
2.6
Etykietowanie i segmentacja
Polecenie bwlabel(obraz, s¡siedztwo); sªu»y do etykietowania, tzn. do przypisywania
jednakowej warto±ci pikselom wewn¡trz obszarów jednorodnych i rozª¡cznych z innymi
obiektami. S¡siedztwo przyjmuje warto±¢ 4 lub 8. Ka»dy jednorodny obiekt ma unikalny
numer, b¦d¡cy kolejnymi dodatnimi liczbami caªkowitymi.
Do prezentacji wyników etykietowania sªu»y polecenie label2rgb (wynik, 'paleta',
[kolor zerowy], 'kolejno±¢'). Do etykietowania obrazów wielowymiarowych sªu»y
polecenie bwlabeln (obraz, s¡siedztwo).
Z poj¦ciem etykietowania zwi¡zana jest segmentacja czyli proces podziaªu obrazu
na fragmenty odpowiadaj¡ce widocznym na obrazie obiektom. Wyró»niamy dwie grupy
metod segmentacji:
• poprzez podziaª obszaru: polega na stopniowym, iteracyjnym, podziale du»ych ob-
szarów na mniejsze, których piksele maj¡ warto±¢ ró»ni¡c¡ si¦ od s¡siedztwa.
• poprzez rozrost obszaru: piksele s¡siedztwa obszaru s¡ sprawdzane czy speªniaj¡
warunki podobie«stwa i w przypadku speªnienia, s¡ doª¡czane do obszaru.
2.7
Wskazywanie obiektów
Polecenie bwselect(obraz, x, y, s¡siedztwo); sªu»y do wskazywania obszarów jednorodnych poprzez wskazanie dowolnego punktu wewn¦trznego. Wektory x,y wskazuj¡
poªo»enie pikseli wewn¦trznych. W przypadku ich braku, wskazywanie odbywa si¦ przy
u»yciu myszki. S¡siedztwo=4,8 i oznacza typ s¡siedztwa. Wynikiem dziaªania tego polecenia jest mapa logiczna, gdzie warto±¢ jeden maj¡ tylko obiekty wskazane poprzez punkty
wewn¦trzne.
2.8
Dziaª wodny
Dziaª wodny jest to linia rozdzielaj¡ca dwa obszary przyci¡gania (zlewnie). Sªu»y do
tego polecenie watershed(obraz, s¡siedztwo);. Funkcja dziaªu wodnego mo»e sªu»y¢
do rozdzielania blisko siebie le»¡cych obiektów.
5

Podobne dokumenty