Flytting Gjennomsnitt Bildeprosesserings
Forskeren og ingeniørerveiledningen til digital signalbehandling av Steven W. Smith, Ph. D. Kapittel 1: Bredden og dybden av DSP-bilder er signaler med spesielle egenskaper. For det første er de et mål for en parameter over rom (avstand), mens de fleste signaler er et mål for en parameter over tid. For det andre inneholder de mye informasjon. For eksempel kan det være nødvendig med mer enn 10 megabyte å lagre ett sekund av tv-video. Dette er mer enn tusen ganger større enn for et lignende lengdesignal. For det tredje er den endelige dommer av kvalitet ofte en subjektiv menneskelig evaluering, snarere enn et objektivt kriterium. Disse spesielle egenskapene har gjort bildebehandling en tydelig undergruppe innenfor DSP. Medisinsk I 1895 oppdaget Wilhelm Conrad Rntgen at røntgenstråler kunne passere gjennom store mengder materie. Medisin ble revolusjonert av evnen til å se i den levende menneskekroppen. Medisinsk røntgenanlegg spredt over hele verden om bare noen få år. Til tross for den åpenbare suksessen ble medisinsk røntgenbilding begrenset av fire problemer til DSP og tilhørende teknikker kom sammen på 1970-tallet. For det første kan overlappende strukturer i kroppen skjule seg bak hverandre. For eksempel er deler av hjertet kanskje ikke synlige bak ribbene. For det andre er det ikke alltid mulig å skille mellom lignende vev. For eksempel kan det være i stand til å skille ben fra bløtvev, men ikke skille en tumor fra leveren. Tredje røntgenbilder viser anatomi. kroppens struktur, og ikke fysiologi. kroppens operasjon. Røntgenbildet av en levende person ser akkurat ut som røntgenbildet av en død. Fremover kan røntgeneksponering forårsake kreft, noe som krever at den brukes sparsomt og bare med riktig begrunnelse. Problemet med overlappende strukturer ble løst i 1971 med innføringen av den første computertomografiscanneren (tidligere kalt beregnet aksial tomografi eller CAT-skanner). Beregnet tomografi (CT) er et klassisk eksempel på digital signalbehandling. Røntgenstråler fra mange retninger passerer gjennom delen av pasientens kropp som undersøkes. I stedet for å bare lage bilder med de oppdagede røntgenstrålene, blir signalene konvertert til digitale data og lagret i en datamaskin. Informasjonen brukes da til å beregne bilder som ser ut til å være skiver gjennom kroppen. Disse bildene viser mye større detalj enn konvensjonelle teknikker, noe som gir betydelig bedre diagnose og behandling. Virkningen av CT var nesten like stor som den opprinnelige innføringen av røntgenbilder selv. Innenfor få år hadde alle store sykehus i verden tilgang til en CT-skanner. I 1979 delte to av CTs-bidragsyterne, Godfrey N. Hounsfield og Allan M. Cormack, Nobelprisen i medisin. Det er bra DSP De siste tre røntgenproblemer har blitt løst ved å bruke penetrerende energi, bortsett fra røntgenstråler, for eksempel radio og lydbølger. DSP spiller en nøkkelrolle i alle disse teknikkene. For eksempel bruker magnetisk resonansimaging (MR) magnetiske felter i forbindelse med radiobølger for å sonde det indre av menneskekroppen. Korrekt justering av styrken og frekvensen av feltene forårsaker at atomkjernene i en lokalisert region av kroppen skal resonere mellom kvantenergilater. Denne resonansen resulterer i utslipp av en sekundær radiobølge, oppdaget med en antenne plassert nær kroppen. Styrken og andre egenskaper ved dette detekterte signalet gir informasjon om den lokaliserte regionen i resonans. Justering av magnetfeltet gjør at resonansområdet kan skannes gjennom hele kroppen, som kartlegger den indre strukturen. Denne informasjonen presenteres vanligvis som bilder, akkurat som i datatomografi. I tillegg til å gi utmerket diskriminering mellom ulike typer myke vev, kan MR gi informasjon om fysiologi, som blodstrøm gjennom arterier. MR er helt avhengig av Digital Signal Processing teknikker, og kunne ikke implementeres uten dem. Space Noen ganger må du bare få mest mulig ut av et dårlig bilde. Dette er ofte tilfelle med bilder tatt fra ubemannede satellitter og romutforskningsbiler. Ingen kommer til å sende en reparatør til Mars for å justere knappene på et kamera. DSP kan forbedre kvaliteten på bildene tatt under ekstremt ugunstige forhold på flere måter: lysstyrke og kontrastjustering, kantdeteksjon, støyreduksjon, fokusjustering, bevegelsesskarphet reduksjon etc. Bilder som har romlig forvrengning, som oppstår når et flatt bilde er tatt av en sfærisk planet, kan også forvrenges til en korrekt representasjon. Mange individuelle bilder kan også kombineres til en enkelt database, slik at informasjonen kan vises på unike måter. For eksempel, en videosekvens som simulerer et flyflyvning over overflaten av en fjern planet. Kommersielle Imaging Products Det store informasjonsinnholdet i bilder er et problem for systemer som selges i massemengde til allmennheten. Kommersielle systemer må være billige. og dette virker ikke bra med store minner og høye dataoverføringshastigheter. Ett svar på dette dilemmaet er bildekomprimering. På samme måte som med stemmesignaler, inneholder bilder en enorm mengde redundant informasjon, og kan kjøres gjennom algoritmer som reduserer antall biter som trengs for å representere dem. TV og andre bevegelige bilder er spesielt egnet for komprimering, siden det meste av bildet forblir det samme fra ramme til bilde. Kommersielle bildeproduksjoner som utnytter denne teknologien inkluderer: videotelefoner, dataprogrammer som viser bevegelige bilder og digital-tv. Denne opplæringen diskuterer hvordan du bruker MATLAB til bildebehandling. Noen kjennskap til MATLAB antas (du bør vite hvordan du bruker matriser og skrive en M-fil). Det er nyttig å ha MATLAB Image Processing Toolbox, men heldigvis behøver ingen verktøykasser for de fleste operasjoner. Kommandoer som krever Image Toolbox er angitt med Image Toolbox. Bilderepresentasjon Det finnes fem typer bilder i MATLAB. Gråtoner. Et gråtonebilde M piksler høy og N piksler bredt er representert som en matrise av dobbel datatype av størrelse M N. Elementverdier (for eksempel MyImage (m, n)) angir pixelgråskalaintensiteter i 0,1 med 0 svart og 1 hvitt. Truecolor RGB. Et truecolor rød-grønt-blå (RGB) bilde er representert som en tredimensjonal M N 3 dobbeltmatrise. Hver piksel har røde, grønne, blå komponenter langs den tredje dimensjonen med verdier i 0,1, for eksempel er fargekomponentene i piksel (m, n) MyImage (m, n, 1) rød, MyImage (m, n, 2) grønn, MyImage (m, n, 3) blue. Indexed. Indekserte (palettede) bilder er representert med en indeksmatrise av størrelse M N og en kolormapmatrise av størrelse K 3. Colormapet inneholder alle fargene som brukes i bildet, og indeksmatrisen representerer pikslene ved å referere til farger i colormap. For eksempel, hvis den 22. fargen er magenta MyColormap (22, :) 1,0,1. så er MyImage (m, n) 22 en magenta-farget pixel. Binary. Et binært bilde representeres av en M N logisk matrise hvor pikselverdier er 1 (sant) eller 0 (false). Uint8. Denne typen bruker mindre minne, og noen operasjoner beregner raskere enn med dobbelte typer. For enkelhets skyld diskuterer ikke denne opplæringen uint8 videre. Gråskala er vanligvis det foretrukne formatet for bildebehandling. I tilfeller som krever farge, kan et RGB-fargebilde dekomponeres og håndteres som tre separate gråtonebilder. Indekserte bilder må konverteres til gråtoner eller RGB for de fleste operasjoner. Nedenfor er noen vanlige manipulasjoner og konverteringer. Noen få kommandoer krever Image Toolbox og er angitt med Image Toolbox. Lese og skrive bildefiler MATLAB kan lese og skrive bilder med kommandoerene imread og imwrite. Selv om et rettferdig antall filformater støttes, er noen ikke. Bruk imformater for å se hva installasjonen din støtter: Når du leser bilder, er et uheldig problem at imaterialet returnerer bildedataene i uint8 datatype, som må konverteres til dobbel og rescaled før bruk. Så i stedet for å kalle imread direkte, bruker jeg følgende M-fil-funksjon for å lese og konvertere bilder: Høyreklikk og lagre getimage. m for å bruke denne M-funksjonen. Hvis bildet baboon. png er i den nåværende katalogen (eller et sted i MATLAB søkeveien), kan du lese det med MyImage getimage (baboon. png). Du kan også bruke delvise baner, for eksempel hvis bildet er i lt nåværende katalog gtimages med getimage (imagesbaboon. png). Hvis du vil skrive et gråskala eller RGB-bilde, må du passe på at MyImage er en dobbel matrise med elementer i 0,1if feil skalert, den lagrede filen vil trolig være tom. Når jeg skriver bildefiler, anbefaler jeg at du bruker PNG-filformatet. Dette formatet er et pålitelig valg fordi det er lossless, støtter truecolor RGB, og komprimerer ganske bra. Bruk andre formater med forsiktighet. Grunnleggende operasjoner Nedenfor er noen grunnleggende operasjoner på et gråtonebilde u. Kommandoer som krever Image Toolbox er angitt med Image Toolbox. (Merk: For en rekkefølge betyr syntaksen u (:) at du ruller inn i en kolonnevektor. For eksempel hvis du er 1,50,2, så er du (:) 1052.) For eksempel brukes bildesignalstyrken i Beregning av signal / støyforhold (SNR) og toppsignal / støyforhold (PSNR). Gitt rent bilde uclean og støyreduktet bilde du, Vær forsiktig med normen. Oppførselen er norm (v) på vektor v beregner sqrt (sum (v.2)). men norm (A) på matrise A beregner den induserte L 2 matrisen normen, så normen (A) er absolutt ikke sqrt (sum (A (:). 2)). Det er likevel en lett feil å bruke norm (A) der den skulle ha vært norm (A (:)). Lineære filtre Linjær filtrering er hjørnesteinsteknikken for signalbehandling. For kort introduksjon er et lineært filter en operasjon hvor ved hver piksel x m, n av et bilde, blir en lineær funksjon evaluert på piksel og naboene for å beregne en ny pikselverdi y m, n. Et lineært filter i to dimensjoner har den generelle formen hvor x er inngangen, y er utgangen, og h er filterimpulsresponsen. Ulike valg av h fører til filtre som glatter, skjerper og oppdager kanter, for å nevne noen få applikasjoner. Høyre side av ligningen ovenfor er betegnet konsistent som h x og kalles konvolusjonen av h og x. Spatial-domain-filtrering To-dimensjonell lineær filtrering er implementert i MATLAB med conv2. Dessverre kan conv2 bare håndtere filtrering nær bildegrenser ved nullpoling, noe som betyr at filtreringsresultater vanligvis ikke er upassende for piksler nær grensen. For å omgå dette kan vi legge inn bilde og bruke det gyldige alternativet når du ringer conv2. Følgende M-funksjon gjør dette. Høyreklikk og lagre conv2padded. m for å bruke denne M-funksjonen. Her er noen eksempler: Et 2D filter h sies å være separerbart hvis det kan uttrykkes som ytterproduktet av to 1D-filtre h1 og h2. det er, h h1 (:) h2 (:). Det er raskere å passere h1 og h2 enn h. som det er gjort over for det glidende gjennomsnittsvinduet og det gaussiske filteret. Faktisk er Sobel filtre hx og han også separablewhat er h1 og h2 Fourier-domene filtrering. Spatial-domene filtrering med conv2 er lett en kostnadseffektiv drift. For et K K filter på et M N bilde koster conv2 O (MNK 2) tillegg og multiplikasjoner, eller O (N 4) antar M N K. For store filtre er filtrering i Fourier-domenet raskere siden beregningskostnaden reduseres til O (N 2 log N). Ved bruk av convolution-multiplikasjonsegenskapen til Fourier-transformasjonen beregnes konvolusjonen tilsvarende. Resultatet er ekvivalent med conv2padded (x, h) unntatt nær grensen, hvor den ovennevnte beregningen benytter periodisk grenseutvidelse. Fourier-basert filtrering kan også gjøres med symmetrisk grenseforlengelse ved å reflektere inngangen i hver retning: (Merk: En enda mer effektiv metode er FFT overlap-add filtrering. Signal Processing Toolbox implementerer FFT overlap-add i en dimensjon i fftfilt .) Ikke-lineære filtre Et ikke-lineært filter er en operasjon der hver filtrert piksel ym, n er en ikke-lineær funksjon av xm, n og naboene. Her diskuteres kort noen få typer av ikke-lineære filtre. Ordne statistikkfiltre Hvis du har Image Toolbox, kan ordningsstatistikkfiltre utføres med ordfilt2 og medfilt2. Et ordningsstatistikkfilter sorterer pikselverdiene over et nabolag og velger den største verdi. Min-, max - og medianfiltrene er spesielle tilfeller. Morfologiske filtre Hvis du har Image Toolbox, implementerer bwmorph ulike morfologiske operasjoner på binære bilder, som erosjon, utvidelse, åpning, lukking og skjelett. Det er også kommandoer tilgjengelig for morfologi på gråtonebilder: imerode. imdilat og imtophat. blant andre. Bygg ditt eget filter Av og til vil vi bruke et nytt filter som MATLAB ikke har. Koden nedenfor er en mal for å implementere filtre. (Merk: En hyppig feilaktig påstand er at sløyfer i MATLAB er treg og bør unngås. Dette var en gang sant, tilbake i MATLAB 5 og tidligere, men sløyfer i moderne versjoner er rimelig raske.) For eksempel er det alfa-trimmet gjennomsnittet filter ignorerer d 2 laveste og d 2 høyeste verdier i vinduet, og gjennomsnittlig gjenværende (2 r 1) 2 d-verdier. Filteret er en balanse mellom et medianfilter og et middelfilter. Det alfa-trimmet gjennomsnittet filteret kan implementeres i malingen. Som et annet eksempel er det bilaterale filteret The Scientist and Engineers Guide til digital signalbehandling av Steven W. Smith, Ph. D. Kapittel 25: Spesielle bildebehandlingsteknikker Morfologisk bildebehandling Identifisering av objekter innenfor et bilde kan være en svært vanskelig oppgave. En måte å forenkle problemet på er å endre gråtonebildet til et binært bilde. hvor hver piksel er begrenset til en verdi på enten 0 eller 1. Teknikkene som brukes på disse binære bildene, går etter slike navn som: blob analyse. tilkoblingsanalyse. og morfologisk bildebehandling (fra det greske ordet morph, som betyr form eller form). Grunnlaget for morfologisk prosessering er i det matematisk strenge feltet til settteori, men dette nivået av sofistikering er sjelden nødvendig. De fleste morfologiske algoritmer er enkle logiske operasjoner og veldig ad hoc. Med andre ord krever hver applikasjon en tilpasset løsning utviklet av prøve-og-feil. Dette er vanligvis mer av en kunst enn en vitenskap. En pose med triks brukes i stedet for standardalgoritmer og formelle matematiske egenskaper. Her er noen eksempler. Figur 25-10a viser et eksempel binært bilde. Dette kan representere en fiendtlig tank i et infrarødt bilde, en asteroide i et romfotografi, eller en mistenkt svulst i en medisinsk røntgenstråle. Hver piksel i bakgrunnen vises som hvit, mens hver piksel i objektet vises som svart. Ofte dannes binære bilder ved å terskle et gråskala bildepiksler med en verdi som er større enn en terskel er satt til 1, mens piksler med en verdi under terskelen er satt til 0. Det er vanlig at gråtonebildet behandles med lineære teknikker før terskelen. For eksempel kan belysning av belysning (beskrevet i kapittel 24) ofte forbedre kvaliteten på det opprinnelige binære bildet. Figur (b) og (c) viser hvordan bildet forandres av de to vanligste morfologiske operasjonene, erosjon og dilatasjon. I erosjon blir hvert objektpiksel som berører en bakgrunnspiksel, omgjort til en bakgrunnspiksel. I utvidelse blir hver bakgrunnspiksel som berører et objektpiksel, endret til en objektpiksel. Erosjon gjør objekter mindre, og kan ødelegge en enkelt gjenstand i flere objekter. Dilering gjør objekter større, og kan slå sammen flere objekter i en. Som vist i (d), er åpning definert som en erosjon etterfulgt av en utvidelse. Figur (e) viser den motsatte operasjonen med å lukke. definert som en dilatasjon etterfulgt av en erosjon. Som illustrert av disse eksemplene fjerner åpningen små øyer og tynne filamenter av objektpiksler. Likeledes fjerner lukking øyer og tynne filamenter med bakgrunnspiksler. Disse teknikkene er nyttige for å håndtere støyende bilder der noen piksler har feil binær verdi. Det kan for eksempel være kjent at en gjenstand ikke kan inneholde et hull, eller at objektets grense må være glatt. Figur 25-11 viser et eksempel på morfologisk behandling. Figur (a) er det binære bildet av et fingeravtrykk. Algoritmer er utviklet for å analysere disse mønstrene, slik at individuelle fingeravtrykk kan matches med de i en database. Et felles trinn i disse algoritmene er vist i (b), en operasjon som kalles skeletonisering. Dette forenkler bildet ved å fjerne overflødige piksler som er, endre passende piksler fra svart til hvitt. Dette resulterer i at hver høyde blir omgjort til en linje bare en enkelt piksel bred. Tabeller 25-1 og 25-2 viser skjelettingsprogrammet. Selv om fingeravtrykksbildet er binært, holdes det i en matrise hvor hver piksel kan kjøre fra 0 til 255. En svart piksel er betegnet med 0, mens en hvit piksel er betegnet med 255. Som vist i tabell 25-1, algoritmen består av 6 iterasjoner som gradvis eroderer ryggene i en tynn linje. Antall iterasjoner er valgt av prøve og feil. Et alternativ ville være å stoppe når en iterasjon ikke gir noen endringer. Under en iterasjon vurderes hver piksel i bildet for å være flyttbar, pikselet oppfyller et sett med kriterier for å bli endret fra svart til hvitt. Linjer 200-240 sløyfe gjennom hver piksel i bildet, mens underrutinen i tabell 25-2 gjør evalueringen. Hvis pikselet under vurdering ikke er flyttbart, gjør subrutinen ingenting. Hvis pikselet er flyttbart, endrer subrutinen sin verdi fra 0 til 1. Dette indikerer at pikselet fortsatt er svart, men vil bli endret til hvitt ved slutten av iterasjonen. Etter at alle pikslene er evaluert, endrer linjene 260-300 verdien av de merkede piksler fra 1 til 255. Denne to-trinns prosessen resulterer i at tykke ryggene blir utelukket like fra alle retninger, i stedet for et mønster basert på hvordan radene og kolonnene blir skannet. Beslutningen om å fjerne en piksel er basert på fire regler, som det finnes i delrutinen vist i tabell 25-2. Alle disse reglene må være fornøyd for at en piksel kan endres fra svart til hvitt. De tre første reglene er ganske enkle, mens den fjerde er ganske komplisert. Som vist i figur 25-12a har en piksel på sted R, C åtte naboer. De fire naboene i horisontal og vertikal retning (merket 2,4,6,8) kalles ofte nære naboer. De diagonale pikslene (merket 1,3,5,7) kalles tilsvarende de fjerntliggende naboene. De fire reglene er som følger: Regel en: Pikselet under vurdering må for tiden være svart. Hvis pikselet allerede er hvit, må det ikke tas noe tiltak. Regel to: Minst en av pikslene nær naboer må være hvit. Dette sikrer at erosjonen av de tykke ryggene foregår fra utsiden. Med andre ord, hvis en piksel er svart, og den er helt omgitt av svarte piksler, skal den stå alene på denne iterasjonen. Hvorfor bare bruke de nære naboene. i stedet for alle naboene Svaret er enkelt: Å kjøre algoritmen på begge måter viser at det fungerer bedre. Husk at dette er svært vanlig i morfologisk bildebehandling. Prøv og feil brukes til å finne ut om en teknikk utfører bedre enn en annen. Regel tre: Pikselet må ha mer enn en svart nabo. Hvis den bare har en, må den være enden av en linje, og derfor bør den ikke fjernes. Regel fire: En piksel kan ikke fjernes hvis den resulterer i at naboene blir koblet fra. Dette er slik at hver høyde er forandret til en kontinuerlig linje, ikke en gruppe avbrutt segmenter. Som vist ved eksemplene i figur 25-12 betyr tilkoblet at alle de svarte naboene berører hverandre. På samme måte betyr uansett at de svarte naboene danner to eller flere grupper. Algoritmen for å bestemme om naboene er koblet eller frakoblet, er basert på å telle de svarte-hvite overgangene mellom tilstøtende nabopiksler i retning med urviseren. Hvis for eksempel piksel 1 er svart og piksel 2 er hvit, betraktes det som en svart-hvitt overgang. På samme måte, hvis piksel 2 er svart og begge piksler 3 og 4 er hvite, er dette også en svart-hvitt overgang. Totalt er det åtte steder hvor en svart-hvitt overgang kan oppstå. For å illustrere denne definisjonen ytterligere, har eksemplene i (b) og (c) en stjerne plassert ved hver svart-hvitt overgang. Nøkkelen til denne algoritmen er at det vil være nøyaktig en svart-hvitt overgang hvis naboene er tilkoblet. Mer enn en slik overgang indikerer at naboene ikke er koblet sammen. Som ekstra eksempler på binær bildebehandling, vurder hvilke typer algoritmer som kan være nyttige etter at fingeravtrykk er skeletonisert. En ulempe ved denne spesielle skjelettingsalgoritmen er at den etterlater en betydelig mengde fuzz. korte offshoots som stikker ut fra sidene av lengre segmenter. Det er flere forskjellige tilnærminger for å eliminere disse artefakter. For eksempel kan et program løpe gjennom bildet som fjerner piksel på slutten av hver linje. Disse pikslene er identifisert ved å ha bare en svart nabo. Gjør dette flere ganger og fuzz blir fjernet på bekostning av å gjøre hver av de riktige linjene kortere. En bedre metode ville løpe gjennom bildeidentifiserende grensepiksler (piksler som har mer enn to naboer). Begynn med hver grenen piksel, telle antall piksler i hver offshoot. Hvis antall piksler i en offshoot er mindre enn noen verdi (si 5), erklærer det å være fuzz, og endre piksler i grenen fra svart til hvitt. En annen algoritme kan endre data fra en bitmap til et vektorkartet format. Dette innebærer å lage en liste over ryggene i bildet og pikslene som finnes i hver ridge. I den vektorkartede skjemaet har hver ås i fingeravtrykk en individuell identitet, i motsetning til et bilde som består av mange ikke-relaterte piksler. Dette kan oppnås ved å løpe gjennom bildet på jakt etter endepunkter av hver linje, pikslene som bare har en svart nabo. Fra endepunktet blir hver linje sporet fra piksel til tilkobling av piksel. Etter at motsatt ende av linjen er nådd, er alle sporte piksler erklært å være et enkelt objekt. og behandles tilsvarende i fremtidige algoritmer.
Comments
Post a Comment