Översikt Signaler, inormation & bilder, öreläsning 5 Michael Felsberg och Maria Magnusson Computer Vision Laborator (Datorseende) Department o Electrical Engineering (ISY) michael.elsberg@liu.se, maria.magnusson@liu.se D Omsampling Uppsampling Nedsampling Rotation Histogram och tröskelsättning Automatisk tröskelsättning Morologiska operationer Dilation (Expansion) Erosion (Krmpning) Kombinationer Avståndskartor Teori: Kap. 4, 5., 5., 6., 6., 6.5 Bgger på Maria Magnussons öreläsningar D Omsampling D linjär interpolation = bilinjär interpolation Metod : Börja med D linjär interpolation i x-led och ortsätt med D linjär interpolation i -led. Metod : Utör D bilinjär interpolation direkt. D bilinjär interpolation, method x A B x, B x, x, xe x, x, x x, x, A, x x e A x, e x, x, x, e e B e x e x e x x
D uppsampling en aktor 4 Fig. 4.6 Uppsampling, ideal, repetition Ex) D bilinjär interpolation, method p. 5 D bilinjär interpolation, method x, x x, Basta på x, x,, x, x e x e x, x, x, xe e x, xe e x, xe e x, xe e x Original Närmsta granne interpolation Bilinjär interpolation Bicubic 6 spline interpolation Fig. 4.8
Nedsampling m. olika interpolationskn. ekvivalent med att kasta bort varannan pixel Nedsampling, ideal Nedsampling + interpolations. original OBS! LP-iltrering behövs här ör att undvika vikningsdistorsion senare. Fig. 4.3 Snabb radiell sinus + långsam radiell sinus Bicubic interpolation Bilinjär interpolation Fig. 4.4 original Eter slarvig nedsampling Fig. 4.4-4.5 Nedsampling, k=, närmsta granne Bildstorlek: 566x4 Bildstorlek: 83x Eekter av vikningsdistorsion 3
Bildstorlek: N x N np.t.tshit( np.t.it( np.t.itshit())) Nedsampling, k=, bilinjär interpolation / Bildstorlek: 83x Ideal uppsampling via Fourierdomänen Bildstorlek: N x N bredd = k = 4 pixlar np.t.tshit( np.t.t( np.t.itshit())) Nollpadda Detta är ekvivalent med: 4 /6 / 4 / 4 dvs lågpassiltrering, öljt av att kasta bort varannan pixel Vikningsdistorsionen nästan borta Rotation av en bild cos R sin x x sin cos Inbild Utbild Rx x x Fig. 4. metoder att rotera: Här bara no För alla x i inbilden. Beräkna Rx i utbilden Rx: x värdet xi. värdet För alla x i utbilden Beräkna R inbilden sprids ut i utbilden x x: R x R xmåste interpoler as ram i inbilden i inbilden Forward mapping Inverse mapping 4
Rotation enligt metod Observera! Inbilden och utbilden är överlagrade. ' R x ' x Rotation i närbild x R x värdet R x interpoleras ram i inbilden måste obs: a < Fig. 4. Inbild öre rotation Utbild eter rotation Rotation med bilinjär interpolation Rotation -3 o Varör blir apan suddigare eter rotationerna? Rotation 3 o Slutsatser ör omsampling samt rotation Den ideala interpolationsunktionen är en sinc som motsvarar en rektangelunktion i Fourierdomänen. Vid uppsampling och rotation ska rektangelunktionen gå till vid bandgränsen. Vid nedsampling med k ska rektangel-unktionen gå till vid bandgränsen/k. Den korresponderade interpolationsunktionen blir k gånger bredare. Interpolations-unktionen måste utöra lågpassiltrering annars år man vikningsdistorsion. Triangelunktionen (linjär interpolation): Dess bredd = bredden på sincens huvudlob. Uppsampling: bredden på triangelunktionen pixlar Nedsampling: bredden på triangelunktionen k pixlar 5
Histogramberäkning på en bild Histogrammet p av en bild (x,) är en sannolikhetsunktion som utsäger hur ota en viss intensitetsnivå..q- örekommer. Bild (x,) Histogram p() p = np.zeros(q) # Initiera histogram till 4 4 3 3 6 3 4 or v in.lat: p[v] += # Beräkna # histogram -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - p = p/sum(p) # Normera histogram # (görs ibland) Olika histogram Kan tröskelsättas Tröskelsättning En gråskalebild (x,) tröskelsätts enligt: b x, B B om om x, x, T T Fig. 5.3 Kontinuerligt, bimodalt Diskret, bimodalt Diskret, ej bimodalt x, p T Ex) B=, B= b x, Fig. 5.4 6
Threholding example En metod att inna en bra tröskel En metod att inna en bra tröskel Anta att bilden är genererad av - Bakgrundsprocessen: P, N, - Objektprocessen: P, N p p, exp exp Histogrammet kan då skrivas som: P p P p p Vi söker =T så att p P p P Fig. 5.5 Kan leda till t ex leasterror metoden som inte visas i detalj här. En annan populär metod är Otsus metod. Automatisk tröskelsättning med mittpunktsmetoden, midwa method (ingen exakt lösning!) T p, i 3 4 T T i p T i T i p T i i i T T / i i : i Fig. 5.5 7
Morologiska operationer Grundläggande morologiska operationer Dilation (Expansion) Erosion (Krmpning) Opening (Öppning) = Erosion + Dilation Closing (Slutning) = Dilation + Erosion p. 9 Grundläggande morologiska operationer Dilation (expansion) Erosion (krmpning) Opening = erosion + dilation erosion dilation Closing = dilation + erosion dilation erosion Tar bort små objekt och utskott (spurs) Återställer storleken Fller igen små hål och sprickor Återställer storleken 8
Opening öljt av closing opening closing Closing öljt av opening closing opening Nästan samma resultat! Strukturelement Binära ilterkärnor brukar kallas strukturelement. De vanligaste strukturelementen är illustrerade nedan. Origo är markerat med en punkt. Opening öljt av closing Closing öljt av opening 9
Dilation ormell beskrivning a b = a b strukturelement altning b tröskling Erosion ormell beskrivning Antal pixlar i strukturelementet strukturelement aθb = a b = A korrelation b tröskling Korrelation = altning med ovikt kärna a Utbild a Utbild Strukturelement Inbild Fig. 6. Strukturelement Inbild Fig. 6. p. 39 p. 4 Exempel: slutör denna dilation! a b a b Exempel: slutör denna erosion! ab a b A a b a b a b ab
Strukturelementet d (4) Strukturelementet d (8) Expansion med detta strukturelement: Alla sidogrannar till objektet -ställs Krmpning med detta strukturelement: Alla sidogrannar till bakgrunden -ställs Expansion med detta strukturelement: Alla sido- och hörngrannar till objektet -ställs Krmpning med detta strukturelement: Alla sido- och hörngrannar till bakgrunden -ställs Strukturelementet d (okt) Detta strukturelement ger en jämnare (oktagonal) expansion/krmpning. Samma eekt kan erhållas genom att omväxlande använda d (4) och d (8). Räkneregler Expansion är kommutativ. (Jämör med altning.) a b b a Krmpning är inte kommutativ. (Jämör med korrelation.) Antag att a och b är olika. Om a rms i b så rms b ej i a. ab ba
Fig. 6.4 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 Konlikt mellan objekt och bakgrund d (4) -konn. objekt <=> d (8) -konn. bakgrund d (8) -konn. objekt <=> d (4) -konn. bakgrund d (4) -konnektivitet: objekt d (8) -konnektivitet: objekt d (4) -konnektivitet: objekt, sammanhängande bakgrund d (8) -konnektivitet: objekt med hål Strukturelementet kan användas ör att beräkna avstånd approximativt. Det inns 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. d (4) -metrik d (8) -metrik Här: avståndskartor utanör ett objekt. d (okt) -metrik: alternera d (4) och d (8) Avståndskartor inuti objekt. d (4) klar. Utör d (8) och d (okt) avståndskartering! d (4) : alla sido-grannar påverkas d (8) : alla sido- och hörngrannar påverkas 3 3 d (4) -metrik d (8) -metrik d (okt) -metrik p. 48
Euklidisk avståndskarta Ger exakt avståndsmått. Kan inte implementeras med strukturelement. Implementerad i MATLAB (phton?) 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 öreslogs av Breu et al., 995. 5 5 p. 49 Avstånd i digitala bilder Man använder inte alltid det korrekta euklidiska avståndet. Det är enklare att använda approximativa avstånd, t ex: d (4) -metrik d (8) -metrik d (okt) -metrik (omväxlande d (4) - och d (8) -metrik) En metrik är ett avståndsmått mellan punkter p och q som måste upplla: d(p,q) >= med d(p,q) = omm p = q d(p,q) = d(q,p) d(p,q) <= d(p,r) + d(r,q) Avståndsmått Euklidiskt avstånd: maxel: % maxel: 4% maxel: -4% maxel: %, örutom (±, ±) 3