Signal- och Bildbehandling FÖRELÄSNING Histogram och tröskelsättning Binär bildbehandling Morfologiska operationer Dilation (Expansion) och Erosion () och kombinationer Avståndskartor Mäta avstånd i bilder Formfaktorer Kortaste vägen Konnektivitet Logiska omgivningsoperatorer Konnektivitetsbevarande krympning Konnektivitetsbevarande krympning till skelett Detektering av förgrenings- och ändpunkter Segmentering och etiketting Flood fill Teori: Kap.., 5 (början), 6 Maria Magnusson, Datorseende, Inst. för Systemteknik, Linköpings Universitet p. Histogramberäkning på en liten bild Bild f(x,y) 4 4 6 Histogram p(f) 4 p. Histogrammet P(f) av en bild f(x,y) är en sannolikhetsfunktion som utsäger hur ofta en viss intensitetsnivå förekommer. for f=,,...,q- % Initiera histop(f):= % gram till end p. Olika histogram Kan tröskelsättas Fig. 5. p. 4 for (x,y)=(,),(,),...,(m,n) % Beräkna f(x,y) => p(f):=p(f)+ % histogram end -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for f=,,...,q- % Normera p(f):=p(f) / (M*N) % histogram end % (görs ibland) Kontinuerligt, bimodalt Diskret, bimodalt Diskret, ej bimodalt
filtrering tröskelsättning morfologiska op. labeling egenskaps- extrahering klassificering Tröskelsättning En gråskalebild f(x,y) b x, y = ቊ B om f x, y T tröskelsätts enligt: B om f x, y < T p. 5 kamera En Bildanalysmodell Segmentering p. 6 Gråskalebild f x, y p f b x, y T Ex) B=55, B= Ex) B=, B= Fig. 5.4 Fig.. Binär Bildbehandling Informationsreduktion Bild => Beskrivning resultat Morfologiska operationer Grundläggande morfologiska operationer Dilation (Expansion) Erosion () Opening (Öppning) = Erosion + Dilation Closing (Slutning) = Dilation + Erosion p. 7 Grundläggande morfologiska operationer Dilation (expansion) p. 8 Erosion (krympning)
p. 9 p. Opening = Erosion + Dilation erosion dilation Closing = dilation + erosion dilation erosion Tar bort små objekt och utskott (spurs) Återställer storleken Fyller igen små hål och sprickor Återställer storleken p. p. Opening följt av closing opening closing Closing följt av opening closing opening
p. p. 4 Nästan samma resultat! Strukturelement Binära filterkärnor brukar kallas strukturelement. De vanligaste strukturelementen är illustrerade nedan. Origo är markerat med en punkt. Opening följt av closing Closing följt av opening Dilation formell beskrivning p. 5 Erosion formell beskrivning Korrelation = faltning med ovikt kärna p. 6 a b = a b faltning b tröskling strukturelement strukturelement aθb = a b = A korrelation b Antal pixlar i struktur-elementet tröskling a Utbild a Utbild Strukturelement Inbild Fig. 6. Strukturelement Inbild Fig. 6. 4
Exempel: slutför denna dilation! p. 7 Exempel: slutför denna erosion! p. 8 a b = a b aθb = a b = A a b a b a b aθb p. 9 p. Strukturelementet d (4) Strukturelementet d (8) Expansion med detta strukturelement: Alla sidogrannar till objektet -ställs med detta strukturelement: Alla sidogrannar till bakgrunden -ställs Expansion med detta strukturelement: Alla sido- och hörngrannar till objektet -ställs med detta strukturelement: Alla sido- och hörngrannar till bakgrunden -ställs 5
Fig. 6.4 p. p. Strukturelementet d (okt) Räkneregler Expansion är kommutativ. (Jämför med faltning.) a b = b a 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 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) aθb bθa Parallell implementation används bl a vid expansion, se bild Jobbar parallellt med en in-bild och en ut-bild. Appliceras på hela bilden i ett pass. Varje pixel påverkas bara av det område som täcks av strukturelementet. Rättfram implementation: Loopa över bilden, applicera hela strukturelementet, skriv resultatet i en ut-bild. p. 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. p. 4 In-bild Ut-bild d (4) -metrik d (8) -metrik Här: avståndskartor utanför ett objekt. d (okt) -metrik: alternera d (4) och d (8) 6
Euklidisk avståndskarta Ger exakt avståndsmått. Kan inte implementeras med strukturelement. Implementerad i MATLAB 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., 995. 5 5 p. 5 Avståndskartor inuti objekt. d (4) klar. Utför d (8) och d (okt) avståndskartering! d (4) : alla sido-grannar påverkas d (8) : alla sido- och hörngrannar påverkas p. 6 d (4) -metrik d (8) -metrik d (okt) -metrik p. 7 p. 8 Formfaktor Mäter kompaktheten hos ett objekt. PA = P 4πA Kompakt: PA = 6.4 Ickekompakt: PA = stor P = omkrets A = area Två sätt att mäta omkrets Tänk att figuren representerar ett samplat objekt. Det är därmed troligt att den undre varianten är ett bättre sätt att mäta omkretsen. Objektet är nästan runt och bör ha PA nära. P = = PA = 4π 9.68 P = 6 + 4 Τ P 5.9 5. 9 PA = 4π 9.6 7
p. 9 p. Kortaste vägen Uppgiften är att förbinda cirkeln med fyrkanten. De grå pixlarna är hinder. Kortaste vägen, fortsättning En d (okt) avståndkarta genereras från cirkeln. p. Kortaste vägen, fortsättning Börja tracking från fyrkanten. Kontrollera de 8 grannarna. Välj den med lägst nummer. Om det är eller flera med samma låga värde, välj den närmaste, alltså inte diagonalen. 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 p. d (4) -konnektivitet: objekt d (8) -konnektivitet: objekt 8
Repetera tills ingen förändring sker i 4 efterföljande faser. Konflikt mellan objekt och bakgrund d (4) -konn. objekt <=> d (8) -konn. bakgrund d (8) -konn. objekt <=> d (4) -konn. bakgrund d (4) -konnektivitet: objekt, sammanhängande bakgrund d (8) -konnektivitet: objekt med hål p. Logiska omgivningsoperatorer Andra namn: matchningskärnor, mönster Indata: Alla pixlar inom en omgivning, Utdata: En logisk funktion av dessa Exempel: Konnektivitetsbevarande krympning till punkt Tunning: Konnektivitetsbevarande krympning till skelett (Extraherar objektets mittlinje) Detektering av förgrenings- och ändpunkter p. 4 4-konnektivitetsbevarande krympning till punkt, matchningskärnor Fas : Fas : Fas : Fas 4: från väster från norr från öster från söder p. 5 Fig. 6.4 Konnektivitetsbevarande krympning till punkt, algoritm p. 6 Applicera matchningskärnorna i fas på inbilden. Vid matchning nollställ ut-bilden. in-bild := ut-bild Applicera matchningskärnorna i fas på inbilden. Vid matchning nollställ ut-bilden. in-bild := ut-bild Applicera matchningskärnorna i fas på inbilden. Vid matchning nollställ ut-bilden. in-bild := ut-bild Applicera matchningskärnorna i fas 4 på inbilden. Vid matchning nollställ ut-bilden. in-bild := ut-bild 9
4-konnektivitetsbevarande krympning till punkt, exempel = försvinner i fas = försvinner i fas, :a iterationen etc... = slutresultat Fas : från väster v 4 4 4 4 p. 7 4-konnektivitetsbevarande krympning till skelett, matchningskärnor Fas : Fas : Fas : Fas 4: Fig. 6.4 från väster från norr från öster från söder p. 8 p. 9 4-konnektivitetsbevarande krympning till skelett, exempel = försvinner i fas, = försvinner i fas, etc... = slutresultat Fas : från väster Fas : Fas : Fas : Fas 4: 8-konnektivitetsbevarande krympning till punkt och skelett, matchningskärnor Fig. 6.7 Uteslutes vid krympning till skelett. p. 4
8-konnektivitetsbevarande krympning till skelett, exempel = försvinner i fas, = försvinner i fas, etc... = slutresultat Fas : från väster 4 p. 4 Fig. 6.9 Detektering av förgreningspunkter och ändslut ändslut förgreningspunkter p. 4 Original Efter tunning Detekterade ändslut och förgreningar Segmentering skiljer ut och etiketterar sammanhängande objekt Gråskalebild Segmenterad och etiketterad bild? p. 4 Segmenteringsalgoritmer Detektera objektets kanter, mm Tröskelsättning Regionsbaserad segmentering Region growing Region splitting and merging Watershed-segmentering Ett gemensamt slutsteg på en segmentering är ofta etikettering (labeling) Etikettering (labeling) Flood fill Snabb RB-algoritmen (Raster-scan Borderfollow) Ej riktigt så snabb Ger mer information kan vi redan idag senare projekt ingår ej p. 44
Etikettering (labeling) med Flood fill algoritmen Flood fill algoritmen fyller en sammanhängande region med etiketter (label-värden). Regionen specificeras med en godtycklig startpunkt från vilken algoritmen söker upp pixlarna i regionen och fyller dem med det specificerade label-värdet. En variant på Flood fill är denna: Put the start pixel on the stack. As long as the stack is not empty: Fetch a pixel p from the stack. Look to the right and to the left from p to locate the interval I of pixels on the row. Along I, check the pixels above and below the row. All pixels that are first in an interval are put on the stack. Fill the interval I with the label value. Fetch a new pixel p from the stack. p. 45 Etikettering (labeling) med Flood fill algoritmen, fortsättning Figuren illustrerar ett steg i algoritmen. Startpunkten är pixeln med den svarta punkten. Intervallet I för denna pixel är markerat med pilar. Raderna ovanför och under har undersökts. Fyra intervall har hittats. De startar på pixlarna markerade med grå punkter. Dessa fyra pixlar läggs på stacken. Sedan fylls intervallen och processen upprepas rekursivt tills stacken är tom. p. 46 p. 47 Etikettering (labeling) med Flood fill algoritmen, fortsättning Att applicera algoritmen på en binär bild är trivialt. Scanna bilden rad-för-rad och leta efter icke etiketterade pixlar. När en sådan pixel hittas, använd Flood fill algoritmen för att fylla hela regionen med ett unikt label-värde.