Úvod
P6
Segmentace obrazu. Prahování. Houghova transformace.
Detekce bodù, linií a hran. Rozrùstání oblastí.
Segmentace obrazu. Prahování.
Houghova transformace. Detekce bodù,
linií a hran. Rozrùstání oblastí.
proces zpracování obrazu
snímaní obrazu, digitalizace a ulo¾ení obrazu - snímáním se
pøevádí vstupní optické velièiny na spojitý elektrický signál
(vstup intenzita, intenzita rentgenového záøení atd.),
digitalizací se pøevádí vstupní spojitý signál do diskrétního
tvaru (vzorkování a kvantování) - matice pøirozených èísel
pøedzpracování obrazu - cílem je potlaèit ¹um a zkreslení,
úprava jasu a kontrastu, úprava histogramu, zostøení obrazu,
zmen¹ení, zvìt¹ení atd. - soubor základních postupù abychom
mohli vyhodnocovat informaci obsa¾enou v obraze
segmentace obrazu - nejtì¾¹í krok, který dovoluje v obraze
najít objekty dùle¾ité z hlediska dal¹ího zpracování (prahování,
detekce bodù, pøímek, hran atd.)
popis nalezených objektù - popis kvantitativní pomocí souboru
èíselných charakteristik (napø. plocha objektu) nebo
kvalitativní pomocí relací mezi objekty
porozumìní obsahu obrazu - klasikace objektù v obraze do
skupin podle jejich spoleèných pøíznakù
Úvod
P6
Detekce bodù, linií a hran
Úvod
segmentaèní metody zalo¾ené na detekci ostrých, lokálních zmìn v
intenzitì
tøi typy lokálních zmìn
izolované body
linie
hrany
hranové pixely (edge pixels ) - pixely ve kterých se intenzita
obrazové funkce mìní náhle
hrany (edges ) - mno¾ina souvislých hranových pixelù
hranové detektory (edge
detekci hran
detectors )
- metody zpracování obrazu pro
linie - hranový segment - intenzita pozadí na obou stranách line je
buï mnohem vìt¹í nebo mnohem men¹í ne¾ intenzita pixelù line
izolovaný bod - linie její¾ délka a ¹íøka je rovna jednomu pixelu
P6
Detekce bodù, linií a hran
Úvod
P6
vyhlazování (rozmazání, rozostøení) obrazu v prostorové doménì prùmìrování v okolí - analogie integrace
detekce náhlých, lokálních zmìn v intenzitì provádìna pomocí
derivací - operátory vyu¾ívající digitální derivace
velikost odezvy operátoru derivace je úmìrná stupni jasové
nespojitosti v bodì, kde je operátor aplikovaný
první a druhé derivace vhodné pro tento úèel
derivace digitální funkce - diference
Detekce bodù, linií a hran
Úvod
P6
derivace digitální funkce - diference
aproximace první derivace musí splòovat
1
2
3
musí být nulová v místech konstantního jasu
musí být nenulová na poèátku jasového skoku nebo rampy
musí být nenulová podél rampy
aproximace druhé derivace musí splòovat
1
2
3
musí být nulová v místech konstantního jasu
musí být nenulová na poèátku a konci jasového skoku nebo
rampy
musí být nulová podél rampy s konstantní smìrnicí
digitální kvantity - hodnoty jsou koneèné, maximální zmìna
intenzity je koneèná, nejkrat¹í vzdálenost zmìny je mezi sousedními
pixely
Detekce bodù, linií a hran
Úvod
P6
denice derivace prvního øádu jednorozmìrné funkce
diference
δf
f px 1q f px q
p q je
f x
δx
derivace prvního øádu v místì x - odeètení funkèní hodnoty v tomto
bodì od funkèní hodnoty dal¹ího bodu x 1 (dopøední)
derivace druhého øádu
δ2 f
δx 2
δδx δδxf δδxf px q δδxf px 1q f px
1q
p 1q 2f px q
f x
derivace druhého øádu v bodì x - ve výpoètu se pou¾ije
pøedcházející a následující bod
Detekce bodù, linií a hran
Úvod
P6
ilustrace první a druhé derivace
Detekce bodù, linií a hran
Úvod
P6
místa s konstantním jasem - obì derivace jsou nulové (podmínka 1)
první derivace nenulové na poèátku rampy a skoku, druhá derivace je nenulová na poèátku a konci
rampy a skoku (podmínka 2)
první derivace je nenulová a druhá derivace je nulová podél rampy (podmínka 3)
Detekce bodù, linií a hran
Úvod
P6
zmìna znaménka u druhé derivace na poèátku a a konci rampy
nebo skoku
v skokovém pøechodu protíná linie mezi hodnotami horizontální osu
tato vlastnost (zero
crossing )
je u¾iteèná pro hledání hran v obraze
hrany - jasové pøechody v obraze (rampa) - první derivace (silné
hrany - nenulová první derivace podél rampy)
hrany - jasové pøechody v obraze (rampa) - druhá derivace (dvojitá
hrana ¹iroká jeden pixel oddìlená nulou)
jasové pøechody mezi objektem a pozadím
(ramp edges )
(step edges )
linie - (roof
edges )
Detekce bodù, linií a hran
Úvod
obraz nanovláken
P6
Detekce bodù, linií a hran
Úvod
jasový prol
P6
Detekce bodù, linií a hran
Úvod
P6
jasový prol
Detekce bodù, linií a hran
Úvod
P6
jasový prol, první a druhá derivace
Detekce bodù, linií a hran
Úvod
P6
izolovaný bod - velikost odezvy v tomto bodì je mnohem vìt¹í pro
druhou derivaci ne¾ pro první - druhá derivace je mnohem citlivìj¹í
na zvýraznìní ostrých jasových zmìn
druhé derivace zvýrazòují jemné detaily (zahrnující taky ¹um) víc
ne¾ první derivace
opaèná znaménka na poèátku a konci rampy a skoku - efekt dvojité
hrany - dùle¾itá vlastnost
znaménko druhé derivace urèuje jestli je hrana pøechod ze svìtlého
do tmavého (negativní druhá derivace) nebo z tmavého do svìtlého
(pozitivní druhá derivace)
Detekce bodù, linií a hran
Úvod
P6
detekce izolovaných bodù - pou¾ití druhé derivace
nejjednodu¹¹í operátor druhé derivace je Laplacián, který pro
obrazovou funkci f px , y q dvou promìnných je dán
∇2 f
2
δδxf
2
δ2 f
δy 2
vyjádøení Laplaciánu v diskrétní formì, ve smìru
δ2 f
δx 2
f px
podobnì, ve smìru
δ2 f
δy 2
1, y q
x
p 1, y q 2f px , y q
f x
y
f px , y
1q
p
f x, y
1q 2f px , y q
Detekce bodù, linií a hran
Úvod
diskrétní Laplacián dvou promìnných je dán
∇2 f px , y q f px 1, y q
p 1, y q f px , y 1q f px , y 1q4f px , y q
f x
maska Laplaciánu (izotropní s krokem 90 , (a)) - implementace
jako u lineární ltrace
zaèlenìní diagonálních smìrù (izotropní s krokem 45 , (b)) - dal¹í
dvì rovnice pro diagonální smìry (proto¾e ka¾dá rovnice obsahuje
2f px , y q, výsledný Laplacián obsahuje 8f px , y q)
(a)
(b)
P6
Detekce bodù, linií a hran
Úvod
pou¾ití masky Laplaciánu pro detekci izolovaných bodù - absolutní
hodnota odezvy masky v bodì pøekroèí prahovou hodnotu T výstupem binární obraz
výstupní obraz je získán
p
g x, y
q
#
1 jestli¾e
0 jinak
kde g px , y q je výstupní obraz,
odezva masky
T
|R px , y q| ¥ T
je prahová hodnota,
p
R x, y
q je
mìøí vá¾ené rozdíly mezi pixelem a jeho 8-sousedy - intenzita
izolovaného bodu je jiná ne¾ jeho okolí (øídí práh T )
odezva masky je nulová v oblastech s konstantní intenzitou
znaménko druhé derivace urèuje jestli je izolovaný bod svìtlý v
tmavém pozadí (negativní druhá derivace) nebo tmavý ve svìtlém
pozadí (pozitivní druhá derivace)
P6
Detekce bodù, linií a hran
Úvod
detekce izolovaných bodù
P6
Detekce bodù, linií a hran
detekce izolovaných bodù
>> w = [1 1 1;1 8 1;1 1
>> g = imfilter(im2double(f),w);
Úvod
1];
P6
Detekce bodù, linií a hran
detekce izolovaných bodù
>> g = g > = 0.9∗max(g(:));
Úvod
P6
Detekce bodù, linií a hran
detekce izolovaných bodù
>> w = [1 1 1;1 8 1;1 1 1];
>> g = imfilter(im2double(f),w);
Úvod
P6
Detekce bodù, linií a hran
detekce izolovaných bodù
>> g = g > = 0.9∗max(g(:));
Úvod
P6
Detekce bodù, linií a hran
Úvod
P6
dal¹í pøístup pro detekci izolovaných bodù - nalezení bodù v okolí
mxn pro které rozdíl maxima a minima pøekraèuje prahovou
hodnotu T
MatLab:
>> gmax = ordfilt2(f,m∗n,ones(m,n)));
>> gmin = ordfilt2(f,1,ones(m,n)));
>> g = imsubtract(gmax,gmin);
>> g = g> =T;
dal¹í mo¾nosti - napø. rozdíl mezi pixelem s nejvìt¹í hodnotou
intenzity a pixelem s druhou nejvìt¹í hodnotou intenzity v okolí
Detekce bodù, linií a hran
Úvod
detekce izolovaných bodù
P6
Detekce bodù, linií a hran
Úvod
detekce izolovaných bodù
>> gmax = ordfilt2(f,m∗n,ones(m,n)));
P6
Detekce bodù, linií a hran
Úvod
detekce izolovaných bodù
>> gmin = ordfilt2(f,1,ones(m,n)));
P6
Detekce bodù, linií a hran
Úvod
detekce izolovaných bodù
>> g = imsubtract(gmax,gmin);
P6
Detekce bodù, linií a hran
Úvod
detekce izolovaných bodù
>> g = g > = 0.9∗max(g(:));
P6
Detekce bodù, linií a hran
Úvod
P6
detekce linií - detekèní masky
maska (a) - nejvìt¹í odezva na linie v horizontálním smìru
(maximální odezva na linie 1 pixel tlusté na konstantním pozadí)
maska (b) - nejvìt¹í odezva na linie ve vertikálním smìru
masky (c),(d) - nejvìt¹í odezva na linie ve smìru -45 a 45
preferovaný smìr je vá¾en vìt¹ím koecientem (tady 2)
nulová odezva masky v oblastech s konstantním jasem
(a)
(b)
(c)
(d)
Detekce bodù, linií a hran
Úvod
P6
detekce linií
Detekce bodù, linií a hran
Úvod
detekce horizontálních linií
>> w=[1 1 1;2 2 2;1 1 1];
>> g=abs(imfilter(im2double(f),w));
P6
Detekce bodù, linií a hran
Úvod
detekce horizontálních linií
>> g = g > = 0.9∗max(g(:));
P6
Detekce bodù, linií a hran
Úvod
detekce vertikálních linií
>> w=[1 2 1;1 2 1;1 2 1];
>> g=abs(imfilter(im2double(f),w));
P6
Detekce bodù, linií a hran
Úvod
detekce horizontálních linií
>> g = g > = 0.9∗max(g(:));
P6
Detekce bodù, linií a hran
Úvod
detekce -45 linií
>> w=[2 1 1;1 2 1;1 1 2];
>> g=abs(imfilter(im2double(f),w));
P6
Detekce bodù, linií a hran
Úvod
detekce horizontálních linií
>> g = g > = 0.9∗max(g(:));
P6
Detekce bodù, linií a hran
Úvod
detekce +45 linií
>> w=[1 1 2;1 2 1;2 1 1];
>> g=abs(imfilter(im2double(f),w));
P6
Detekce bodù, linií a hran
Úvod
detekce horizontálních linií
>> g = g > = 0.9∗max(g(:));
P6
Detekce bodù, linií a hran
Úvod
P6
detekce hran - detekce významných jasových nespojitostí - detekce
pomocí prvních a druhých derivací
první derivace - gradient
pro obrazovou funkci f px , y q, gradient
denovaný jako dvojrozmìrný vektor
∇f
grad pf q f
v souøadnicích
px , y q je
δ Gx
Gy
f
δx
δf
δy
vektor má dùle¾itou geometrickou vlastnost - urèující smìr nejvìt¹í
zmìny funkce f v bodì px , y q (smìr gradientu)
αpx , y q tan1
Gy
Gx
Detekce bodù, linií a hran
Úvod
P6
velikost, modul gradientu (magnitude,
p
g x, y
length)
q mag p∇f q b
Gx2
vektoru ∇f ,
p
g x, y
q
Gy2
p q je strmost zmìny, rùstu v bodì px , y q
g px , y q je obraz stejné velikosti jako originál - gradientní obraz
g x, y
(gradient
image )
odhady derivací - funkce edge
druhé derivace - Laplacián - zøídka pou¾ívané pro detekci hran
(citlivé na ¹um, výstupem je dvojitá hrana, není urèen smìr hrany) vyu¾ívá se jako doplnìk v kombinaci s jinými technikami detekce
hran
Detekce bodù, linií a hran
základní idea pro detekci hran - nalézt místa v obraze, kde nastává
rapidní zmìna intenzity - dvì kritéria
nalézt místa, kde první derivace je vìt¹í ne¾ denovaný práh
nalézt místa, kde druhá derivace prochází nulou
(zero-crossing )
nìkolik odhadù derivací - (edge
detectors )
>> g = edge(f,method,parameters);
f je vstupní obraz, method je metoda pro odhad derivace a
parameters jsou parametry
výstupem je binární obraz, kde svìtlé pixely odpovídají hranám
Úvod
P6
Detekce bodù, linií a hran
Úvod
P6
(Roberts
edge detector )
jeden z nejstar¹ích a nejjednodu¹¹ích hranových detektorù (není
symetrický)
q rG G s { rpz z q pz z q s {
pixel v pozici px , y q je hranový pixel jestli¾e g ¥ T
p
g x, y
2
2 1 2
x
y
9
5
2
>> BW =edge(f,roberts,thresh);
8
6
2 1 2
Detekce bodù, linií a hran
Úvod
P6
(Roberts
edge detector )
Detekce bodù, linií a hran
Úvod
P6
(Roberts
edge detector )
>> BW = edge(f,roberts);
Detekce bodù, linií a hran
Úvod
P6
(Sobel
p
edge detector )
g x, y
q rG
2
x
rpz
s { prpz 2z
2z
z q pz
2 1 2
Gy
3
6
7
9
1
8
z9
2z4
q pz 2z
{
z qs q
1
7
2
z3
2 1 2
>> BW =edge(f,sobel,thresh,direction);
qs
2
Detekce bodù, linií a hran
Úvod
P6
(Sobel
edge detector )
Detekce bodù, linií a hran
Úvod
(Sobel edge detector )
>> BW = edge(f,sobel,horizontal);
P6
Detekce bodù, linií a hran
Úvod
(Sobel edge detector )
>> BW = edge(f,sobel,vertical);
P6
Detekce bodù, linií a hran
Úvod
P6
(Sobel
edge detector )
>> BW = edge(f,sobel,both);
Detekce bodù, linií a hran
Úvod
P6
(Prewitt
edge detector )
jednodu¹¹í ne¾ Sobel (více ¹umu, koecient 2 u Sobela - vyhlazení)
g
rG
2
x
s { rpz
2 1 2
Gy
rpz
3
7
z6
z9
z8
q pz
z9
1
q pz
1
z4
z7
z2
qs
z3
qs
2
2
>> BW =edge(f,prewitt,thresh,direction);
Detekce bodù, linií a hran
Úvod
P6
(Prewitt
edge detector )
Detekce bodù, linií a hran
Úvod
(Prewitt edge detector )
>> BW = edge(f,prewitt,horizontal);
P6
Detekce bodù, linií a hran
Úvod
(Prewitt edge detector )
>> BW = edge(f,prewitt,vertical);
P6
Detekce bodù, linií a hran
Úvod
(Prewitt edge detector )
>> BW = edge(f,prewitt,both);
P6
Detekce bodù, linií a hran
Úvod
P6
(Laplacian
of a Gaussian (LoG) detector )
Gaussova funkce (vyhlazení)
p q e h r
kde
r
2
x
2
y
2
r
2
2σ 2
a σ je smìrodatná odchylka
Laplacián (druhá derivace)
∇2 hpr q r
2
σ e
2
σ
4
r
2
2σ 2
vyhlazení obrazu (redukce ¹umu) a následnì Laplacián (dvojitá
hrana - lokalizace prùchodu nulou)
>> BW =edge(f,log,thresh,sigma);
Detekce bodù, linií a hran
Úvod
P6
(LoG
detector )
>> BW = edge(f,log);
Detekce bodù, linií a hran
Úvod
(Zero-crossing detector )
>> BW = edge(f,zerocross,h);
P6
Detekce bodù, linií a hran
Úvod
P6
(Canny
edge detector )
>> BW = edge(f,canny);
Download

Segmentace obrazu. Prahování. Houghova transformace. Detekce