- 1. Bildebehandling ved å bruke MATLAB Editor-vinduet
- 2. Bildebehandling med MATLAB GUI
- Opprette MATLAB grafisk brukergrensesnitt for bildebehandling
- MATLAB GUI-kode for bildebehandling
- Kjør MATLAB GUI-kode for bildebehandling
Tenk deg å peke kameraet mot noe objekt, og kameraet forteller deg navnet på objektet, ja, Google Lens i Android-smarttelefoner gjør det samme ved å bruke bildebehandling. Dette gir datamaskinen en visjon for å oppdage og gjenkjenne tingene og utføre handlinger deretter. Bildebehandling har mange applikasjoner som ansiktsgjenkjenning og -gjenkjenning, tommelfingerinntrykk, utvidet virkelighet, OCR, strekkodeskanning og mange flere. Det er mange programvare tilgjengelig for bildebehandling, blant dem er MATLAB den mest egnede til å begynne med.
MATLAB kan utføre mange forhåndsbehandlingsoperasjoner, men for å komme i gang med bildebehandling i MATLAB, vil vi her forklare noen grunnleggende operasjoner som RGB til grå, rotere bildet, binær konvertering osv. Du kan videre lage automatiserte programmer for støyfjerning, bilde klarhet, filtrering ved hjelp av funksjonene som er forklart i denne opplæringen.
Før du fortsetter videre, hvis du er fersk i MATLAB, kan du sjekke våre tidligere MATLAB-opplæringsprogrammer for bedre å understreke:
- Komme i gang med MATLAB: En rask introduksjon
- Grensesnitt Arduino med MATLAB - Blinkende LED
- DC-motorstyring ved bruk av MATLAB og Arduino
- Stepper Motor Control ved hjelp av MATLAB og Arduino
- Hvordan plotte sanntidstemperaturgraf ved hjelp av MATLAB
I MATLAB er det som alltid to måter å utføre en hvilken som helst bildebehandlingsalgoritme på, den ene er ved direkte å skrive inn kommandoen i redigerings- / kommandovinduet, og den andre er ved å lage en GUI for det samme. Her vil vi vise deg begge metodene for å utføre grunnleggende operasjoner for bildebehandling i MATLAB.
1. Bildebehandling ved å bruke MATLAB Editor-vinduet
Nå skal vi skrive koden for å utføre noen grunnleggende operasjoner for bildebehandling i redigeringsvinduet. For å bli kjent med alle de grunnleggende terminologiene som brukes i MATLAB, følg lenken. Kopier og lim inn koden nedenfor i redigeringsvinduet, a = imread ('F: \ circuit digest \ image processing using matlab \ camerman.jpg'); delplott (2,3,1); imshow (a); b = rgb2grå (a); delplott (2,3,2); imshow (b); c = im2bw (a); delplott (2,3,3); imshow (c); d = imadjust (b); delplott (2,3,4); imshow (d); e = a; e = rgb2grå (e); delplott (2,3,5); imhist (e); imfinfo ('F: \ circuit digest \ image processing using matlab \ beard-man.jpg') = størrelse (a) % colormap ('vår')
I variabelen 'a' importerer vi bilde ved hjelp av kommandoen imread ('filnavn') og lager deretter et plot av '2' rad og '3' kolonne ved hjelp av delplott (rad, kolonne, posisjon) og viser det importerte bildet på posisjon 1'. For å vise bildet bruker vi kommando imshow ('filnavn') .
Nedenfor er det få kommandoer for å utføre grunnleggende behandling av opplastede bilder:
- I variabelen 'b' konverterer vi RGB-bildet til gråtoneintensitetsbilde ved å bruke kommandoen rgb2gray ('filnavn') og viser det i plott på posisjon '2'.
- I variabelen 'c' konverterer vi bildet til binært bilde, eller du kan si i formatet '0' (svart) og '1' (hvitt) ved å bruke kommandoen im2bw ('filnavn') og vise det i plott på posisjon '3'.
- I variabelen 'd' justerer eller kartlegger vi gråtonebildens intensitetsverdier ved å bruke kommandoen imadjust ('filnavn') og viser den i plott på posisjon '4'.
- I variabelen 'e' tegner vi histogrammet til gråtonebildet ved å bruke kommandoen imhist ('filnavn') og viser den i plott på posisjon '5'. For å tegne histogrammet må du alltid konvertere bildet til gråtoner, og da vil du kunne se histogrammet til den grafiske filen.
- Imfinfo ('filnavn med plassering') kommando brukes til å vise informasjon om den grafiske filen.
- = størrelse ('filnavn') -kommandoen brukes til å vise størrelsen og fargeflakene til en bestemt grafisk fil.
- colormap ('spring') brukes til å endre typen fargekart for grafisk fil. Her, i koden min, satte jeg denne kommandoen som kommentar, men du kan bruke den ved å fjerne prosenttegnet. Det er mange typer farger i MATLAB som Jet, HSV, Hot, Cool, Summer, Autumn, Winter, Grey, Bone, Copper, Pink, Lines and spring.
Som disse er det mange kommandoer i MATLAB som kan brukes til å utføre forskjellige oppgaver. Du kan sjekke bildebehandlingsfunksjonene i MATLAB ved å følge lenken.
2. Bildebehandling med MATLAB GUI
Opprette MATLAB grafisk brukergrensesnitt for bildebehandling
For å bygge et GUI (grafisk brukergrensesnitt) for bildebehandling, start GUI ved å skrive kommandoen nedenfor i kommandovinduet .
guide
Et popup-vindu åpnes, og velg deretter nytt tomt GUI som vist i bildet nedenfor,
Nå må vi velge antall trykknapper (hver trykknapp vil utføre forskjellige oppgaver) og en akse for å vise bildet.
For å endre størrelse eller endre formen på trykknappen eller aksene, klikker du bare på den og du vil kunne dra hjørnene på knappen. Ved å dobbeltklikke på noen av disse vil du kunne endre farge, streng, merke og andre alternativer for den aktuelle knappen. Etter tilpasning vil det se slik ut
Du kan tilpasse knappene etter eget valg. Nå når du lagrer dette, genereres en kode i Editor-vinduet til MATLAB. Rediger den genererte koden for å angi oppgaven for forskjellige trykknapper. Nedenfor har vi redigert MATLAB-koden.
MATLAB GUI-kode for bildebehandling
Komplett MATLAB-kode for bildebehandling ved hjelp av MATLAB GUI, er gitt på slutten av dette prosjektet. Videre inkluderer vi GUI-filen (.fig) og kodefilen (.m) her for nedlasting, ved hjelp av hvilken du kan tilpasse knappene eller aksestørrelsen etter behov. Vi har redigert den genererte koden som forklart nedenfor.
I 'uploadimage' -funksjonen, kopier og lim inn koden nedenfor for å sette inn filen fra PC-en. Her brukes kommando uigetfile ('image extension type') for å importere bilde i MATLAB GUI. Les den filen ved hjelp av kommandoen imread (), og vis den deretter med kommandoen imshow () på akser1 ved hjelp av akser (handles.axes1) . Nå, med kommandoen setappdata (), lagrer du variabelen i GUI slik at variabelen vil være tilgjengelig for en del av GUI til den andre delen av GUI.
a = uigetfile ('. jpg') a = imread (a); akser (håndtak.akser1); imshow (a); setappdata (0, 'a', a)
Nå, i hver funksjon vil du se kommando getappdata () som brukes til å hente data som er lagret ved hjelp av setappdata () i GUI.
Her vil vi forklare åtte ofte brukte funksjoner i bildebehandling
S. Nei |
Kommando |
Knappens navn |
Oppgave som skal utføres |
1. |
uigetfile () |
Last opp bilde |
Klikk for å importere bilde fra disk |
2. |
rgb2gray () |
RGB til grå |
Klikk for å konvertere RGB-bilde til gråtoner |
3. |
im2bw () |
Konverter til binært bilde |
Klikk for å konvertere bildet til binært |
4. |
- |
NULLSTILLE |
Klikk for å tilbakestille bildet som original |
5. |
imhist () |
Histogram |
Klikk for å se histogrammet til bildet |
6. |
imcomplement () |
Utfyllingsbilde |
Klikk for å sjekke utfyllingsbildet |
7. |
edge (filnavn, metode) |
Edge Detection |
Klikk for å oppdage kantene i bildet |
8. |
imrotate (filnavn, vinkel) |
Roter med klokken |
Klikk for å rotere bildet med urviseren |
9. |
imrotate (filnavn, vinkel) |
Roter mot klokken |
Klikk for å rotere bildet mot urviseren |
1. Konverter RGB-bilde til gråtoner
I funksjonen 'rgb2gray' , kopier og lim inn koden nedenfor for å konvertere RGB-bildet til gråtoner ved å bruke kommandoen rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2gray (a); akser (håndtak.akser1); imshow (agray);
2. Konverter til binært bilde
I funksjonen 'im2bw' , kopier og lim inn koden nedenfor for å konvertere bildet til binært bilde, eller du kan si i formatet '0' (svart) og '1' (hvit) ved å bruke kommandoen im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); akser (håndtak.akser1); imshow (abw);
3. Tilbakestill til originalbilde
I 'tilbakestill' -funksjonen, kopier og lim inn koden nedenfor for å tilbakestille det redigerte bildet til originalbildet.
a = getappdata (0, 'a'); akser (håndtak.akser1); imshow (a);
4. Plottbildehistogram
I funksjonen 'histogram' , kopier og lim inn koden nedenfor for å plotte histogrammet til gråtonebildet ved å bruke kommandoen imhist ('filnavn') og vise det på akser1 . For å tegne histogrammet må du alltid konvertere bildet til gråtoner, og da vil du kunne se histogrammet til den grafiske filen.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2grå (ahist); akser (håndtak.akser1); imhist (ahist);
5. Konverter til komplementbilde
I 'complementimage' -funksjonen kopierer du og limer inn koden nedenfor for å se komplementet til den innsatte grafikkfilen ved hjelp av kommandoimcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = imcomplement (acomp); akser (håndtak.akser1); imshow (acomp);
6. Kantdeteksjon ved hjelp av Canny-metoden
I 'kant' -funksjonen, kopier og lim inn koden nedenfor for å oppdage og finne kanter i gråtonebilde ved å bruke kommandokanten ('filnavn', 'metode') . I stedet for metoden kan du velge mellom disse tre, Canny, Prewitt og montage . Vi bruker Canny- metoden for kantdeteksjon. Du kan heller ikke oppdage kanten direkte fra originalbildet, først må du konvertere den til gråtoner, og deretter kan du oppdage kantene.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2gray (aedge); aedge = edge (aedge , 'Canny') ' axes (handles.axes1); imshow (aedge);
7. Roter bildet med klokken
I funksjonen med klokken , kopier og lim inn koden nedenfor for å rotere bildet med urviseren ved å bruke kommando imrotate (filnavn, 'vinkel')
a = getappdata (0, 'a'); lås = a; aclock = imrotate (aclock, 270); akser (håndtak.akser1); imshow (lås);
8. Roter bildet mot klokken
I "mot urviseren" -funksjonen, kopier og lim inn koden nedenfor for å rotere bildet mot urviseren ved å bruke kommando imrotate (filnavn, "vinkel")
a = getappdata (0, 'a'); lås = a; aclock = imrotate (aclock, 90); akser (håndtak.akser1); imshow (lås);
Kjør MATLAB GUI-kode for bildebehandling
Klikk nå på 'RUN' -knappen for å kjøre den redigerte koden i.m-filen
MATLAB kan ta noen sekunder å svare, ikke klikk på noen GUI-knapper før MATLAB viser opptatt melding i nedre venstre hjørne som vist nedenfor,
Når alt er klart, importerer du bildet fra PC-en ved å klikke på 'Last opp bilde' -knappen. Nå vil du kunne konvertere eller rotere bildet ved å klikke på hvilken som helst knapp tilsvarende. Tabellen nedenfor viser oppgaven vi utfører ved å klikke på en bestemt knapp:
Resultatet ved å klikke på hver knapp vil vises nedenfor,
Fullstendig bearbeiding av hver knapp er demonstrert i videoen nedenfor.
Du kan til og med gjøre avansert nivå av bildebehandling med Image Processing Toolbox som du kan kjøpe fra MATHWORKS offisielle side. Noen av forhåndsnivåoperasjonene er oppført nedenfor:
- Geometriske operasjoner
- Blokker operasjoner
- Lineær filtrering og filterdesign
- Transformerer
- Bildeanalyse og forbedring
- Binære bildeoperasjoner