- 1. Billedbehandling ved hjælp af MATLAB Editor-vinduet
- 2. Billedbehandling med MATLAB GUI
- Oprettelse af MATLAB grafisk brugergrænseflade til billedbehandling
- MATLAB GUI-kode til billedbehandling
- Kør MATLAB GUI-kode til billedbehandling
Forestil dig at pege dit kamera mod et objekt, og kameraet fortæller dig navnet på det objekt, ja, Google Lens i Android-smartphones gør det samme ved hjælp af billedbehandling. Dette giver computeren en vision om at opdage og genkende tingene og tage handlinger i overensstemmelse hermed. Billedbehandling har mange applikationer som ansigtsgenkendelse og -genkendelse, tommelfingerindtryk, augmented reality, OCR, stregkodescanning og mange flere. Der er mange software tilgængelige til billedbehandling, blandt dem MATLAB er den mest egnede til at begynde med.
MATLAB kan udføre mange avancerede billedbehandlingsoperationer, men for at komme i gang med billedbehandling i MATLAB vil vi her forklare nogle grundlæggende operationer som RGB til grå, rotere billedet, binær konvertering osv. Du kan yderligere lave automatiserede programmer til støjfjernelse, billede klarhed, filtrering ved hjælp af de funktioner, der er forklaret i denne vejledning.
Inden du går videre, hvis du er ny hos MATLAB, kan du tjekke vores tidligere MATLAB-vejledninger for bedre undervisning:
- Kom godt i gang med MATLAB: En hurtig introduktion
- Interfacing Arduino med MATLAB - Blinkende LED
- DC-motorstyring ved hjælp af MATLAB og Arduino
- Stepper Motor Control ved hjælp af MATLAB og Arduino
- Sådan plottes realtidstemperaturgraf ved hjælp af MATLAB
I MATLAB er der som altid to måder at udføre enhver billedbehandlingsalgoritme på, den ene er ved direkte at indtaste kommandoen i editoren / kommandovinduet, og den anden er ved at oprette en GUI til det samme. Her viser vi dig begge metoder til at udføre grundlæggende operationer til billedbehandling i MATLAB.
1. Billedbehandling ved hjælp af MATLAB Editor-vinduet
Nu skriver vi koden til udførelse af nogle grundlæggende operationer i billedbehandling i editorvinduet. For at blive fortrolig med alle de grundlæggende terminologier, der bruges i MATLAB, skal du følge linket. Kopier og indsæt nedenstående kode i editorvinduet, a = imread ('F: \ circuit digest \ image processing using matlab \ camerman.jpg'); delplot (2,3,1); imshow (a); b = rgb2grå (a); delplot (2,3,2); imshow (b); c = im2bw (a); delplot (2,3,3); imshow (c); d = imadjust (b); delplot (2,3,4); imshow (d); e = a; e = rgb2grå (e); delplot (2,3,5); imhist (e); imfinfo ('F: \ circuit digest \ image processing using matlab \ beard-man.jpg') = størrelse (a) % colormap ('spring')
I variablen 'a' importerer vi billede ved hjælp af kommandoen imread ('filnavn') og laver derefter et plot af '2' række og '3' kolonne ved hjælp af delplot (række, kolonne, position) og viser det importerede billede på position ' 1 '. For at vise billedet bruger vi kommando imshow ('filnavn') .
Nedenfor er der få kommandoer til at udføre grundlæggende behandling af uploadet billede:
- I variablen 'b' konverterer vi RGB-billedet til et gråtonebilledintensitetsbillede ved hjælp af kommandoen rgb2gray ('filnavn') og viser det i plot på position '2'.
- I variablen 'c' konverterer vi billedet til binært billede, eller du kan sige i formatet '0' (sort) og '1' (hvid) ved hjælp af kommandoen im2bw ('filnavn') og vise det i plot på position '3'.
- I variablen 'd' justerer eller kortlægger vi gråtone-billedintensitetsværdier ved hjælp af kommandoen imadjust ('filnavn') og viser den i plot på position '4'.
- I variablen 'e' tegner vi histogrammet for gråtonebilledet ved hjælp af kommandoen imhist ('filnavn') og viser det i plot på position '5'. For at tegne histogrammet skal du altid konvertere billedet til gråtoner, og så vil du kunne se histogrammet for den grafiske fil.
- Imfinfo ('filnavn med placering') kommando bruges til at vise oplysninger om den grafiske fil.
- = størrelse ('filnavn') kommando bruges til at vise størrelse og farveplan for en bestemt grafikfil.
- colormap ('spring') bruges til at ændre typen af colormap i grafisk fil. Her, i min kode, indstillede jeg denne kommando som kommentar, men du kan bruge den ved at fjerne procentsignalet. Der er mange typer farver i MATLAB som Jet, HSV, Hot, Cool, Summer, Autumn, Winter, Grey, Bone, Copper, Pink, Lines og spring.
Som disse er der mange kommandoer i MATLAB, som kan bruges til at udføre forskellige opgaver, du kan kontrollere billedbehandlingsfunktionerne i MATLAB ved at følge linket.
2. Billedbehandling med MATLAB GUI
Oprettelse af MATLAB grafisk brugergrænseflade til billedbehandling
For at opbygge en GUI (Grafisk brugergrænseflade) til billedbehandling skal du starte GUI'en ved at skrive nedenstående kommando i kommandovinduet .
guide
Et popup-vindue åbnes, og vælg derefter en ny tom GUI som vist i billedet nedenfor,
Nu skal vi vælge antal trykknapper (hver trykknap udfører forskellige opgaver) og en akse for at vise billedet.
For at ændre størrelsen eller ændre formen på trykknappen eller akserne skal du bare klikke på den og du kan trække hjørnerne på knappen. Ved at dobbeltklikke på en af disse vil du kunne ændre farve, streng, tag og andre muligheder for den pågældende knap. Efter tilpasning vil det se sådan ud
Du kan tilpasse knapperne efter eget valg. Når du nu gemmer dette, genereres en kode i Editor-vinduet i MATLAB. Rediger den genererede kode for at indstille opgaven til forskellige trykknapper. Nedenfor har vi redigeret MATLAB-koden.
MATLAB GUI-kode til billedbehandling
Komplet MATLAB-kode til billedbehandling ved hjælp af MATLAB GUI findes i slutningen af dette projekt. Yderligere inkluderer vi GUI-filen (.fig) og kodefilen (.m) her til download, ved hjælp af hvilken du kan tilpasse knapperne eller aksestørrelsen efter dit behov. Vi har redigeret den genererede kode som forklaret nedenfor.
I funktionen 'uploadimage' skal du kopiere og indsætte nedenstående kode for at indsætte filen fra pc'en. Her bruges kommando uigetfile ('billedforlængelsestype') til import af billede i MATLAB GUI. Læs den fil ved hjælp af kommandoen imread (), og vis den derefter med kommandoen imshow () på akser1 ved hjælp af akser (handles.axes1) . Gem nu variablen i GUI'en med kommandoen setappdata (), så variablen vil være tilgængelig for en del af GUI til den anden del af GUI.
a = uigetfile ('. jpg') a = imread (a); akser (håndtag. akser1); imshow (a); setappdata (0, 'a', a)
Nu, i hver funktion vil du se kommando getappdata (), der bruges til at hente data, der er gemt ved hjælp af setappdata () i GUI.
Her forklarer vi otte almindeligt anvendte funktioner i billedbehandling
S. nr. |
Kommando |
Knappenavn |
Opgave, der skal udføres |
1. |
uigetfile () |
Upload billede |
Klik for at importere billede fra disk |
2. |
rgb2gray () |
RGB til grå |
Klik for at konvertere RGB-billede til gråtoner |
3. |
im2bw () |
Konverter til binært billede |
Klik for at konvertere billedet til binært |
4. |
- |
NULSTIL |
Klik for at nulstille billedet som original |
5. |
imhist () |
Histogram |
Klik for at se histogrammet for billedet |
6. |
ukomplementeret () |
Suppleringsbillede |
Klik for at kontrollere komplementbilledet |
7. |
kant (filnavn, metode) |
Edge Detection |
Klik for at registrere kanterne i billedet |
8. |
imrotate (filnavn, vinkel) |
Drej med uret |
Klik for at rotere billedet med uret |
9. |
imrotate (filnavn, vinkel) |
Drej mod uret |
Klik for at rotere billedet mod urets retning |
1. Konverter RGB-billede til gråtoner
I funktionen 'rgb2gray' skal du kopiere og indsætte nedenstående kode for at konvertere RGB-billedet til gråtoner ved hjælp af kommandoen rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2gray (a); akser (håndtag. akser1); imshow (agray);
2. Konverter til binært billede
I funktionen 'im2bw' skal du kopiere og indsætte nedenstående kode for at konvertere billedet til binært billede, eller du kan sige i formatet '0' (sort) og '1' (hvid) ved hjælp af kommandoen im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); akser (håndtag. akser1); imshow (abw);
3. Nulstil til originalt billede
I funktionen 'nulstil' skal du kopiere og indsætte nedenstående kode for at nulstille det redigerede billede til det originale billede.
a = getappdata (0, 'a'); akser (håndtag. akser1); imshow (a);
4. Plotbillede histogram
I funktionen 'histogram' skal du kopiere og indsætte nedenstående kode for at plotte histogrammet for gråtonebilledet ved hjælp af kommandoen imhist ('filnavn') og vise det på akser1 . For at tegne histogrammet skal du altid konvertere billedet til gråtoner, og så vil du kunne se histogrammet for den grafiske fil.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2grå (ahist); akser (håndtag. akser1); imhist (ahist);
5. Konverter til komplementbillede
I funktionen 'complementimage' skal du kopiere og indsætte nedenstående kode for at se komplementet til den indsatte grafiske fil ved hjælp af kommandoimcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = ukomplementeret (acomp); akser (håndtag. akser1); imshow (acomp);
6. Kantdetektion ved hjælp af Canny-metode
I 'kant'- funktionen skal du kopiere og indsætte nedenstående kode for at opdage og finde kanter i gråtonebillede ved hjælp af kommandokanten (' filnavn ',' metode ') . I stedet for metoden kan du vælge mellem disse tre, Canny, Prewitt og montage . Vi bruger Canny- metoden til kantdetektion. Du kan heller ikke registrere kanten direkte fra det originale billede, først skal du konvertere den til gråtoner, og derefter kan du opdage kanterne.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2gray (aedge); aedge = edge (aedge , 'Canny') ' axes (handles.axes1); imshow (aedge);
7. Drej billedet med uret
I funktionen 'med uret' skal du kopiere og indsætte nedenstående kode for at rotere billedet i retning med uret ved hjælp af kommando imrotate (filnavn, 'vinkel')
a = getappdata (0, 'a'); lås = a; aclock = imrotate (aclock, 270); akser (håndtag. akser1); imshow (lås);
8. Drej billedet mod uret
I funktionen 'mod uret' skal du kopiere og indsætte nedenstående kode for at rotere billedet mod urets retning ved hjælp af kommando imrotate (filnavn, 'vinkel')
a = getappdata (0, 'a'); lås = a; aclock = imrotate (aclock, 90); akser (håndtag. akser1); imshow (lås);
Kør MATLAB GUI-kode til billedbehandling
Klik nu på knappen 'KØR' for at køre den redigerede kode i.m-filen
MATLAB kan tage et par sekunder at svare, klik ikke på nogen GUI-knapper, før MATLAB viser beskæftiget besked i nederste venstre hjørne som vist nedenfor,
Når alt er klar, skal du importere billedet fra pc'en ved at klikke på knappen 'Upload billede'. Nu kan du konvertere eller rotere billedet ved at klikke på en vilkårlig knap i overensstemmelse hermed. Nedenstående tabel viser dig den opgave, vi udfører ved at klikke på en bestemt knap:
Resultatet ved klik på hver knap giver vist nedenfor,
Komplet bearbejdning af hver knap demonstreres i videoen nedenfor.
Du kan endda udføre avanceret billedbehandlingsniveau med Image Processing Toolbox, som du kan købe fra MATHWORKS officielle side, nogle af forhåndsniveauoperationer er angivet nedenfor:
- Geometriske operationer
- Bloker operationer
- Lineær filtrering og filterdesign
- Transformerer
- Billedanalyse og forbedring
- Binære billedoperationer