Sunday 5 November 2017

Flytte Gjennomsnittet On Matlab


En enkel (ad hoc) måte er å bare ta et veid gjennomsnitt (tunbart av alfa) på hvert punkt med sine naboer: eller en viss variasjon derav. Ja, for å være mer sofistikert kan du Fourier omforme dataene dine først, og deretter kutte av de høye frekvensene. Noe som: Dette kutter ut de høyeste 20 frekvensene. Vær forsiktig med å kutte dem ut symmetrisk, ellers er den omvendte transformasjonen ikke lenger ekte. Du må nøye velge cutoff frekvensen for riktig nivå av utjevning. Dette er en veldig enkel type filtrering (boksfiltrering i frekvensdomene), slik at du kan forsøke forsiktig å dempe høyfrekvensfrekvenser dersom forvrengningen ikke er akseptabel. Besvart 4. oktober 09 klokka 9:16 FFT er ikke en dårlig ide, men det er nok overkill her. Løpende eller bevegelige gjennomsnitt gir generelt dårlige resultater og bør unngås for alt annet enn sent lekser (og hvit støy). Id bruker Savitzky-Golay filtrering (i Matlab sgolayfilt (.)). Dette gir deg de beste resultatene for det du leter etter - litt lokal utjevning mens du holder kurven i form. 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 malen. Som et annet eksempel bruker det bilaterale filteretSlideshare informasjonskapsler for å forbedre funksjonalitet og ytelse, og for å gi deg relevant reklame. Hvis du fortsetter å surfe på nettstedet, godtar du bruken av informasjonskapsler på denne nettsiden. Se vår brukeravtale og personvernregler. Slideshare bruker informasjonskapsler for å forbedre funksjonalitet og ytelse, og for å gi deg relevant annonsering. Hvis du fortsetter å surfe på nettstedet, godtar du bruken av informasjonskapsler på denne nettsiden. Se vår personvernerklæring og brukeravtale for detaljer. Utforsk alle favorittemner i SlideShare-appen Få SlideShare-appen til å lagre for senere, selv frakoblet Fortsett til mobilnettstedet Opplastning Logg inn Registrering Dobbeltklikk for å zoome ut Grunnleggende matlab-programmer Del denne SlideShare LinkedIn Corporation kopien 2017

No comments:

Post a Comment