Signaler, information & bilder, föreläsning 15

Full text

(1)

Signaler, information &

bilder, föreläsning 15

Michael Felsberg och Maria Magnusson Computer Vision Laboratory (Datorseende) Department of Electrical Engineering (ISY) michael.felsberg@liu.se,

maria.magnusson@liu.se

• 2D Omsampling – Uppsampling – Nedsampling – Rotation

• Histogram och tröskelsättning – Automatisk

tröskelsättning

• Morfologiska operationer

– Dilation (Expansion) – Erosion (Krympning) – Kombinationer

• Avståndskartor

• Teori: Kap. 4, 5.1, 5.2, 6.1, 6.2, 6.5

• Bygger på Maria Magnussons föreläsningar

Översikt

2D Omsampling

2D linjär interpolation = bilinjär interpolation

Metod 1: Börja med 1D linjär interpolation i x-led och fortsätt med 1D linjär interpolation i y-led.

Metod 2: Utför 2D bilinjär interpolation direkt.

2D bilinjär interpolation, method 1

     

     

   





e e

e f

f e

f f

e f

f e

f f

y B y A y x f

x y

x f x y

x f B

x y

x f x y

x f A

1 ,

1 , 1 1

1 ,

, 1 1

,

xf yf

f ,

xf,yf 1

f

xf yf

f 1,

xf 1,yf 1

f xe 1

ye

A

B

x y

f , x

y

 



 

 0, 1

1 , 1

x x x x

(2)

Ex) 2D bilinjär interpolation, method 1

p. 5

 

        

xff yff

 

e xe

yee f

xff yff

e xeyee f

y x y x f y x

y x f

y x f

1 , 1 1

1 ,

1 ,

1 1

1 , ,

xf yf

f ,

xf,yf 1

f f

xf 1,yf 1

x y

   

x y

 ,

x y

f ,

xf yf

f 1,

y x

x,y

på Basyta 

ye

xe

2D bilinjär interpolation, method 2

2D uppsampling en faktor 4

Ori- ginal

Närm- sta granne interpo- lation

Bi- linjär inter- po- lation

Bicubic 16 spline interpo- lation

Fig.

4.8

U pp sam plin g, ide al, rep etitio n

Fig. 4.6

(3)

Ned sam plin g, ide al

Fig. 4.13

OBS!

LP-filtrering be- hövs här för att undvika viknings-

distorsion

senare.

N e d s a mp ling + inter p o lation s f.

Fig. 4.14 original

Bicubic interpolation Bilinjär interpolation Snabb

radiell sinus + långsam radiell sinus

Fig. 4.14- 4.15

original Efter

slarvig ned- sampling

Nedsam pl ing m . ol ik a inte rpo lati on s fk n .

Nedsampling, k=2, närmsta granne

Bildstorlek: 566x402 Bildstorlek: 283x201

Effekter av viknings-

distorsion

ekvivalent med att kasta bort varannan pixel

(4)

1 2 1/4 4

/ 1 2 1 16 / 1 2 1

2 4 2

1 2 1

Detta är ekvivalent med:

dvs lågpassfiltrering, följt av att kasta bort varannan pixel

2 / 1

bredd = 2·k = 4 pixlar

Viknings- distorsionen

nästan borta Bildstorlek: 283x201

Nedsampling, k=2, bilinjär interpolation Ideal uppsampling via Fourierdomänen

Bildstorlek: N x N

np.fft.fftshift(

np.fft.fft2(

np.fft.ifftshift(f)))

Bildstorlek: 2N x 2N

Nollpadda

np.fft.fftshift( np.fft.ifft2( np.fft.ifftshift(f)))

Rotation av en bild

  x

f

  R x f



 

 

 

cos sin

sin R cos

 

 

  y x x

Inbild

Utbild

x

y

Fig. 4.10

2 metoder att rotera: Här bara no 2

   

 

Rx f

 

x

f

f x

R

f x

 :

utbilden i

Beräkna

inbilden i

alla För

1.

 

 

 

x f

R x

f

f x

R

f x

1 1

:

inbilden i

Beräkna

utbilden i

alla För

2.

 

måsteinterpolerasfram iinbilden värdet f R1x

 

iinbilden spridsut iutbilden värdet f x

Inverse mapping Forward mapping

(5)

Rotation enligt metod 2

Fig. 4.11 Observera!

Inbilden och utbilden är överlagrade.

 

 

 

 

 

 

y R x y

x

1

' '

obs: a <0

Rotation i närbild

 

x f

R x

f1

 

inbilden i

fram as interpoler

måste värdet f R1x

Inbild f före rotation Utbild fefter rotation

Rotation med bilinjär interpolation

Varför blir apan suddi- gare efter rotationerna?

Rotation -30o

Rotation 30o

Slutsatser för omsampling samt rotation

Den ideala interpolationsfunktionen är en sincsom motsvarar en rektangelfunktion i Fourierdomänen.

Vid uppsampling och rotation ska rektangelfunktionen gå till 0 vid bandgränsen.

Vid nedsampling med k ska rektangel-funktionen gå till 0 vid bandgränsen/k. Den korresponderade interpolations- funktionen blir k gånger bredare.

Interpolations-funktionen måste utföra lågpassfiltrering annars får man vikningsdistorsion.

Triangelfunktionen (linjär interpolation): Dess bredd = bredden på sincens huvudlob.

Uppsampling: bredden på triangelfunktionen 2 pixlar Nedsampling: bredden på triangelfunktionen 2·k pixlar

(6)

Histogramberäkning på en bild

Bild f(x,y) Histogram p(f)

0 0

0 0

0 0

2 2

4 4

2 2

3 3

2 2

6

0 1 2 3 4

Histogrammet p av en bild f(x,y) är en sannolikhetsfunktion som utsäger hur ofta en viss intensitetsnivå 0..Q-1 förekommer.

p = np.zeros(Q) # Initiera histogram till 0

for v in f.flat: # Beräkna

p[v] += 1 # histogram

-- - - -

p = p/sum(p) # Normera histogram

# (görs ibland)

Olika histogram

Kontinuerligt, bimodalt

Diskret, ej bimodalt Diskret,

bimodalt Kan tröskelsättas

Fig. 5.3

Tröskelsättning

Fig. 5.4

   

 



 

T y x f om B

T y x f om y B

x

b ,

, ,

2

En gråskalebild f(x,y) 1

tröskelsätts enligt:

x y

b ,

 

f

x y

p f ,

T

Ex) B1=1, B2=0

(7)

Anta att bilden är genererad av - Bakgrundsprocessen:

- Objektprocessen:

0 0

0, N  , P

1 1

1, N

,

P

 







 

  

2

0 0 0

0 2

exp 1 2

1

f f

p

 







 

  

2

1 1 1

1 2

exp 1 2

1

f f

p

En metod att finna en bra tröskel En metod att finna en bra tröskel

Histogrammet kan då skrivas som:

 

f P p

 

f P p

 

f

p0 01 1

Vi söker f=T så att

 

f P p

 

f p

P0 01 1

Fig. 5.5

Kan leda till t ex least- error metoden som inte visas i detalj här.

En annan populär metod är Otsus metod.

Automatisk

tröskelsättning med mittpunktsmetoden, midway method (ingen exakt lösning!)

 

 

, 0

0p f i

T

0 0

 

Ti

p

 

f f Ti

1 1

 

Ti

p

 

f f Ti

2

   

0 1

/2

1 i i

i T T

T    3

1 : i 4 i

Fig. 5.5

Threholding ex ample

(8)

Morfologiska operationer

• Grundläggande morfologiska operationer Dilation (Expansion)

Erosion (Krympning)

• Opening (Öppning) = Erosion + Dilation

• Closing (Slutning) = Dilation + Erosion

p. 29

Dilation (expansion)

Erosion (krympning)

Grundläggande morfologiska operationer

dilation erosion

Tar bort små objekt och utskott (spurs)

Opening = erosion + dilation

Återställer storleken

Closing = dilation + erosion

dilation erosion

Fyller igen små hål och sprickor Återställer storleken

(9)

Opening följt av closing

opening closing

Closing följt av opening

opening closing

Closing följt av opening Opening följt av

closing

Nästan samma resultat! Strukturelement

• Binära filterkärnor brukar kallas struktur- element. De vanligaste strukturelementen är illustrerade nedan. Origo är markerat med en punkt.

(10)

Dilation – formell beskrivning

≈Fig. 6.2 𝑎 ⊕ 𝑏 = 𝑎 ∗ 𝑏 ≥ 1

faltning tröskling struktur-

element

𝑏

𝑎

Strukturelement Inbild

Utbild

≈Fig. 6.2 𝑎Θ𝑏 = 𝑎 𝑏 = 𝐴

korrelation tröskling Antal pixlar i struktur- elementet

Korrelation = faltning med ovikt kärna

Erosion – formell beskrivning

struktur-

element 𝑏

𝑎

Strukturelement Inbild

Utbild

Exempel: slutför denna dilation!

b a  b

a

   1 

b a b a

p. 39

a b A

b

a   

b a

b a

Exempel: slutför denna erosion!

p. 40

(11)

Strukturelementet d

(4)

Expansion med detta strukturelement:

Alla sidogrannar till objektet 1-ställs Krympning med detta strukturelement:

Alla sidogrannar till bakgrunden 0-ställs

Strukturelementet d

(8)

Expansion med detta strukturelement:

Alla sido- och hörngrannar till objektet 1-ställs Krympning med detta strukturelement:

Alla sido- och hörngrannar till bakgrunden 0-ställs

Strukturelementet d

(okt)

Detta strukturelement ger en jämnare (oktagonal) expansion/krympning.

Samma effekt kan erhållas genom att omväxlande använda d(4)och d(8).

Räkneregler

a b b

a    a b b

a   

Expansion är kommutativ.

(Jämför med faltning.)

Krympning är inte kommutativ.

(Jämför med korrelation.) Antag att a och b är olika.

Om a ryms i b så ryms b ej i a.

(12)

Vilka grannar är sammanhängande?

• d(4)-konnektivitet: pixlar sitter ihop om de har angränsande sida

• d(8)-konnektivitet: pixlar sitter ihop om de har angränsande sida eller hörn

d(4)-konnektivitet: 2 objekt

d(8)-konnektivitet: 1 objekt

Konflikt mellan objekt och bakgrund

• d(4)-konn. objekt <=> d(8)-konn. bakgrund

• d(8)-konn. objekt <=> d(4)-konn. bakgrund

d(4)-konnektivitet: 2 objekt, sammanhängande bakgrund

d(8)-konnektivitet: 1 objekt med hål

Strukturelementet kan användas för att beräkna avstånd approximativt. Det finns olika metriker.

Strukturelementet appliceras upprepade gånger på objektet (här en punkt). Notera iterationsnumret. Det ger ett avstånd till objektet. Vid varje iteration ökas avståndet med 1.

d(4)-metrik

Fig. 6.4 d(8)-metrik d(okt)-metrik:

alternera d(4)och d(8) Här: avståndskartor utanför ett objekt.

Avståndskartor inuti objekt. d

(4)

klar.

Utför d

(8)

och d

(okt)

avståndskartering!

1 1 1 1 1

1 2 2 2 1

2 3 3 2 1

1 2 2 2 1

1 1 1 1

d(4)-metrik d(8)-metrik d(okt)-metrik d(4): alla sido-grannar påverkas

d(8): alla sido- och hörngrannar påverkas

p. 48

(13)

1

2 0 1

1

2 2

5

Euklidisk avståndskarta

• Ger exakt avståndsmått.

• Kan inte implementeras med strukturelement.

• Implementerad i MATLAB (phyton?) tillsammans med d(4)och d(8)avståndskartor.

• d(4)och d(8)avståndskartor är snabbare att beräkna än en euklidisk avsåndskarta.

• En ganska snabb implementering föreslogs av Breu et al., 1995.

2 1 2 5

p. 49

Avstånd i digitala bilder

• d(4)-metrik

• d(8)-metrik

• d(okt)-metrik (omväxlande d(4)- och d(8)-metrik)

d(p,q) >= 0 med d(p,q) = 0 omm p = q

d(p,q) = d(q,p)

d(p,q) <= d(p,r) + d(r,q)

Man använder inte alltid det korrekta euklidiska avståndet.

Det är enklare att använda approximativa avstånd, t ex:

En metrik är ett avståndsmått mellan 2 punkter p och q som måste uppfylla:

Avståndsmått

• Euklidiskt avstånd:

maxfel: 0%

maxfel: 41%

maxfel: -41%

maxfel: 11%, förutom (±1, ±1)

Figur

Updating...

Referenser

Updating...

Relaterade ämnen :