Signaler, information & bilder, föreläsning 5 Michael Felsberg Computer Vision Laboratory Department of Electrical Engineering michael.felsberg@liu.se Översikt Histogram och tröskelsättning Histogramutjämning Medianfilter Automatisk tröskelsättning Lokal tröskelsättning Tröskelsättning med hysteres Morfologiska operationer Dilation (Expansion) Erosion (Krympning) Kombinationer Segmentering och etikettering Avstånd i bilder Avståndskartor Gråvärdesskillnaden Teori: Kap.., 5., 5., 6., 6., 6.5 Bygger på Maria Magnussons föreläsningar Segmentering skiljer ut och etiketterar sammanhängande objekt Gråskalebild Segmenterad och etiketterad bild Histogramberäkning på en bild Bild f(x,y) Histogram p(f) hur?? 6
Histogrammet p av en bild f(x,y) är en sannolikhetsfunktion som utsäger hur ofta en viss intensitetsnivå..q- förekommer. Olika histogram Kan tröskelsättas p = np.zeros(q) # Initiera histogram till Fig. 5. for v in f.flat: p[v] += # Beräkna # histogram -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - p = p/sum(p) # Normera histogram # (görs ibland) Kontinuerligt, bimodalt Diskret, bimodalt Diskret, ej bimodalt Histogramutjämning Exempel histogram ska vara en likfördelning kumulativa fördelnignen: linjärt P = p.cumsum() # p ej normaliserad P = 55*P / P[-] # skala om till rätt interval f = np.interp(f.flatten(),np.arange(56),p) # interpolera nya gråvärden f = f.reshape(f.shape) # återskapa D bild
Medianfilter Medianen M är det gråvärde sådant att antalet gråvärden större än M är lika med antalet gråvärden mindre än M Ett medianfilter ersätter på arbetspunkten gråvärdet med medianen i filtermasken. Im = signal.medfiltd(im,5) Tröskelsättning En gråskalebild f(x,y) tröskelsätts enligt: b x, y B B om om f f x, y x, y T T f x, y p f T Ex) B=, B= b x, y Fig. 5. En metod att finna en bra tröskel En metod att finna en bra tröskel Anta att bilden är genererad av - Bakgrundsprocessen: P, N, - Objektprocessen: P, N p p f f, f exp f exp Histogrammet kan då skrivas som f P p f P p f p Vi söker f=t så att p f P p f P Fig. 5.5
Automatisk tröskelsättning med mittpunkts-metoden (ingen exakt lösning!) T T p f, i T i p f f T i T i p f f T i i i T T / i i : i Mycket medelvärdesbildning Lokal tröskelsättning Alt: Laplace-filtrering med stor kärna Tröskelsättning Fig. 5.5 Lokal tröskelsättning d(x,y): Diskret centrerad dirac: Ger ingen effekt - - - - - - - - - - - - - M(x,y): Ger mycket medelvärdesbildning 5 L(x,y): stor Laplacekärna 5 / median! - Fig. 5.8 - - - - - - - - - - x, yd x, y f x, y M x, y f x, y Lx y f, OBS! I verkligheten behövs ännu större kärnor Tröskelsättning med hysteres Tröskel T tar bort delar av objektet Tröskel T bevarar delar av bakgrunden a: Gråskalebild b: Trösklad på T c: Trösklad på T d: Slutresultat Bild b expanderas med bivillkor att expansionen ej får ske utanför objekten i bild c. Fig. 5.
Flödesschema för tröskelsättning med hysteres Ladda bild a Morfologiska operationer b:=(a>t) e:=b d:=expand(b) b:=d mult c c:=(a>t) Grundläggande morfologiska operationer Dilation (Expansion) Erosion (Krympning) Opening (Öppning) = Erosion + Dilation Closing (Slutning) = Dilation + Erosion nej b = e? ja Slutresultat är bild e Grundläggande morfologiska operationer Opening = erosion + dilation erosion dilation Dilation (expansion) Erosion (krympning) Tar bort små objekt och utskott (spurs) Återställer storleken 5
Closing = dilation + erosion dilation erosion Opening följt av closing opening closing Fyller igen små hål och sprickor Återställer storleken Closing följt av opening closing opening Nästan samma resultat! Opening följt av closing Closing följt av opening 6
Strukturelement Binära filterkärnor brukar kallas strukturelement. De vanligaste strukturelementen är illustrerade nedan. Origo är markerat med en punkt. Dilation formell beskrivning a b a b faltning tröskling a b b a Fig. 6. Erosion formell beskrivning ab strukturelement strukturelement a a b korrelation A b Antal pixlar i struktur-elementet tröskling Korrelation = faltning med ovikt kärna ab Räkneregler Expansion är kommutativ. (Jämför med faltning.) a b b a 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. Fig. 6. ab ba 7
Strukturelementet d () Strukturelementet d (8) Expansion med detta strukturelement: Alla sidogrannar till objektet -ställs Krympning med detta strukturelement: Alla sidogrannar till bakgrunden -ställs Expansion med detta strukturelement: Alla sido- och hörngrannar till objektet -ställs Krympning med detta strukturelement: Alla sido- och hörngrannar till bakgrunden -ställs Strukturelementet d (okt) Vilka grannar är sammanhängande? d () -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 Detta strukturelement ger en jämnare (oktagonal) expansion/krympning. Samma effekt kan erhållas genom att omväxlande använda d () och d (8). d () -konnektivitet: objekt d (8) -konnektivitet: objekt 8
Fig. 6. Konflikt mellan objekt och bakgrund d () -konn. objekt <=> d (8) -konn. bakgrund d (8) -konn. objekt <=> d () -konn. bakgrund RB-algoritmen (Raster-scan Border-follow) Bilden rasterscannas vänster-höger uppifrån-nedåt. När scanningen passerar en kant (-> eller ->) avbryts skanningen och konturföljning sker. Under konturföljningen sätts etiketter till höger om kant. Till sist expanderas alla etiketter till höger, se nästa slide. d () -konnektivitet: objekt, sammanhängande bakgrund d (8) -konnektivitet: objekt med hål Efter kontur-följning av det första objektet. Fig. 6. Efter konturföljning av båda objekten och ett hål. RB-algoritmen, slutresultat Strukturelementet kan användas för att beräkna avstånd approximativt. Det finns olika metriker. 5 Topologisk graf: 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. 5 5 5 5 5 d () -metrik d (8) -metrik d (okt) -metrik: alternera d () och d (8) 9
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 () -metrik d (8) -metrik d (okt) -metrik (omväxlande d () - och d (8) -metrik) En metrik är ett avståndsmått mellan punkter p och q som måste uppfylla: 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 d x, y x y 8 d x, y max x, y x y maxfel : % maxfel : % maxfel : % d okt x, y max x, x y, y maxfel :% PSNR: Global bildavstånd i gråvärden Peak Signal to Noise Ratio Klassisk mått hur bra t ex avbrusning fungerar Bygger på medelfelet (MSE) Mäts i db (decibel)