- 1. Bildbehandling med hjälp av MATLAB Editor-fönstret
- 2. Bildbehandling med MATLAB GUI
- Skapa MATLAB grafiskt användargränssnitt för bildbehandling
- MATLAB GUI-kod för bildbehandling
- Kör MATLAB GUI-kod för bildbehandling
Tänk dig att peka din kamera mot något föremål och kameran berättar namnet på det objektet, ja, Google Lens i Android-smarttelefoner gör samma sak med bildbehandling. Detta ger datorn en vision att upptäcka och känna igen sakerna och vidta åtgärder därefter. Bildbehandling har många applikationer som ansiktsigenkänning och -igenkänning, tumavtryck, augmented reality, OCR, streckkodssökning och många fler. Det finns många programvaror tillgängliga för bildbehandling, bland dem MATLAB är det mest lämpliga till att börja med.
MATLAB kan utföra många avancerade bildbehandlingsoperationer, men för att komma igång med bildbehandling i MATLAB kommer vi här att förklara några grundläggande operationer som RGB till grå, rotera bilden, binär konvertering etc. Du kan vidare göra automatiserade program för brusborttagning, bild klarhet, filtrering med hjälp av funktionerna som förklaras i denna handledning.
Innan du fortsätter, om du är ny på MATLAB kan du kolla in våra tidigare MATLAB-självstudier för bättre underdrift:
- Komma igång med MATLAB: En snabb introduktion
- Gränssnitt Arduino med MATLAB - Blinkande LED
- DC-motorstyrning med MATLAB och Arduino
- Stegmotorstyrning med MATLAB och Arduino
- Hur man plottar diagram i realtidstemperatur med MATLAB
I MATLAB, som alltid, finns det två sätt att utföra valfri bildbehandlingsalgoritm, det ena är genom att direkt ange kommandot i redigeraren / kommandofönstret och det andra är att skapa ett GUI för detsamma. Här visar vi båda metoderna för att utföra grundläggande operationer för bildbehandling i MATLAB.
1. Bildbehandling med hjälp av MATLAB Editor-fönstret
Nu kommer vi att skriva koden för att utföra några grundläggande operationer för bildbehandling i redigeringsfönstret. För att bekanta dig med alla grundläggande termer som används i MATLAB, följ länken. Kopiera och klistra in koden nedan i redigeringsfönstret, a = imread ('F: \ circuit digest \ image processing using matlab \ camerman.jpg'); delplan (2,3,1); imshow (a); b = rgb2grå (a); delplan (2,3,2); imshow (b); c = im2bw (a); delplan (2,3,3); imshow (c); d = imadjust (b); delplan (2,3,4); imshow (d); e = a; e = rgb2grå (e); delplan (2,3,5); imhist (e); imfinfo ('F: \ circuit digest \ image processing using matlab \ beard-man.jpg') = storlek (a) % colormap ('vår')
I variabeln "a" importerar vi bilden med kommandot imread ("filnamn") och gör sedan en plot av "2" -raden och "3" -kolumnen med hjälp av delplan (rad, kolumn, position) och visar den importerade bilden på position 1 '. För att visa bilden använder vi kommandot imshow ('filnamn') .
Nedan följer några kommandon för att utföra grundläggande bearbetning av uppladdad bild:
- I variabeln 'b' konverterar vi RGB-bilden till gråskalaintensitetsbild med kommandot rgb2gray ('filnamn') och visar den i plot på position '2'.
- I variabeln 'c' konverterar vi bilden till binär bild eller så kan du säga i formatet '0' (svart) och '1' (vit) med kommandot im2bw ('filnamn') och visa det i plot på position '3'.
- I variabeln "d" justerar eller kartlägger vi bildens intensitetsvärden i gråskala med kommandot imadjust ("filnamn") och visar det i plot på position "4".
- I variabeln 'e' plottar vi histogrammet för gråskalebilden med kommandot imhist ('filnamn') och visar det i plot på position '5'. För att plotta histogrammet måste du alltid konvertera bilden till gråskala och då kan du se histogrammet för den grafiska filen.
- Imfinfo ('filnamn med plats') används för att visa information om den grafiska filen.
- = kommando storlek ('filnamn') används för att visa storlek och färgplan för en viss grafisk fil.
- colormap ('spring') används för att ändra typen av färgkarta för grafikfilen. Här, i min kod ställer jag in det här kommandot som kommentar, men du kan använda det genom att ta bort procentsatsen. Det finns många färgtyper i MATLAB som Jet, HSV, Hot, Cool, Summer, Autumn, Winter, Grey, Bone, Copper, Pink, Lines och våren.
Som dessa finns det många kommandon i MATLAB som kan användas för att utföra olika uppgifter, du kan kontrollera bildbehandlingsfunktionerna i MATLAB genom att följa länken.
2. Bildbehandling med MATLAB GUI
Skapa MATLAB grafiskt användargränssnitt för bildbehandling
För att bygga ett GUI (grafiskt användargränssnitt) för bildbehandling, starta GUI genom att skriva kommandot nedan i kommandofönstret .
guide
Ett popup-fönster öppnas och välj sedan nytt tomt GUI som visas i bilden nedan.
Nu måste vi välja antal tryckknappar (varje tryckknapp kommer att utföra olika uppgifter) och en axel för att visa bilden.
För att ändra storlek eller ändra formen på tryckknappen eller axlarna, klicka bara på den så kan du dra hörnen på knappen. Genom att dubbelklicka på någon av dessa kommer du att kunna ändra färg, sträng, tagg och andra alternativ för just den knappen. Efter anpassning kommer det att se ut så här
Du kan anpassa knapparna enligt ditt val. Nu när du sparar detta genereras en kod i MATLABs redigeringsfönster. Redigera den genererade koden för att ställa in uppgiften för olika tryckknappar. Nedan har vi redigerat MATLAB-koden.
MATLAB GUI-kod för bildbehandling
Komplett MATLAB-kod för bildbehandling med MATLAB GUI ges i slutet av detta projekt. Vidare inkluderar vi GUI-filen (.fig) och kodfilen (.m) här för nedladdning, med vilken du kan anpassa knapparna eller axelstorleken enligt dina behov. Vi har redigerat den genererade koden enligt nedan.
I funktionen 'uploadimage' kopierar och klistrar du in koden nedan för att infoga filen från datorn. Här används kommandot uigetfile ('bildtilläggstyp') för att importera bild i MATLAB GUI. Läs den filen med kommandot imread () och visa den sedan med kommandot imshow () på axlar1 med axlar (handles.axes1) . Nu, med kommandot setappdata (), lagrar du variabeln i GUI så att variabeln blir tillgänglig för en del av GUI till den andra delen av GUI.
a = uigetfile ('. jpg') a = imread (a); axlar (handtag. axlar1); imshow (a); setappdata (0, 'a', a)
Nu, i varje funktion ser du kommandot getappdata () som används för att hämta data som lagras med setappdata () i GUI.
Här kommer vi att förklara åtta vanliga funktioner i bildbehandling
S. nr |
Kommando |
Knappens namn |
Uppgift som ska utföras |
1. |
uigetfile () |
Ladda upp bild |
Klicka för att importera bild från disk |
2. |
rgb2gray () |
RGB till grå |
Klicka för att konvertera RGB-bild till gråskala |
3. |
im2bw () |
Konvertera till binär bild |
Klicka för att konvertera bilden till binär |
4. |
- |
ÅTERSTÄLLA |
Klicka för att återställa bilden som original |
5. |
imhist () |
Histogram |
Klicka för att se histogrammet för bilden |
6. |
ofullständig () |
Komplementbild |
Klicka för att kontrollera komplementbilden |
7. |
edge (filnamn, metod) |
Kantdetektering |
Klicka för att upptäcka kanterna i bilden |
8. |
imrotate (filnamn, vinkel) |
Rotera klockvis |
Klicka för att rotera bilden medurs |
9. |
imrotate (filnamn, vinkel) |
Rotera moturs |
Klicka för att rotera bilden moturs |
1. Konvertera RGB-bild till gråskala
I "rgb2gray" -funktionen, kopiera och klistra in nedanstående kod för att konvertera RGB-bilden till gråskala med kommandot rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2gray (a); axlar (handtag. axlar1); imshow (agray);
2. Konvertera till binär bild
I 'im2bw' -funktionen, kopiera och klistra in koden nedan för att konvertera bilden till binär bild eller så kan du säga i formatet '0' (svart) och '1' (vit) med kommandot im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); axlar (handtag. axlar1); imshow (abw);
3. Återställ till originalbilden
I "återställningsfunktionen" kopierar och klistrar du in koden nedan för att återställa den redigerade bilden till originalbilden.
a = getappdata (0, 'a'); axlar (handtag. axlar1); imshow (a);
4. Plotbildhistogram
I funktionen 'histogram' kopierar och klistrar du in koden nedan för att plotta gråskalebildens histogram med kommandot imhist ('filnamn') och visa det på axlarna1 . För att plotta histogrammet måste du alltid konvertera bilden till gråskala och då kan du se histogrammet för den grafiska filen.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2gray (ahist); axlar (handtag. axlar1); imhist (ahist);
5. Konvertera till kompletteringsbild
I funktionen 'complementimage' kopierar och klistrar du in koden nedan för att se komplementet till den infogade grafiska filen med kommandot imcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = imcomplement (acomp); axlar (handtag. axlar1); imshow (acomp);
6. Kantavkänning med Canny-metod
I "kant" -funktionen, kopiera och klistra in koden nedan för att upptäcka och hitta kanter i gråskalebild med kommandokanten ("filnamn", "metod") . I stället för metod kan du välja mellan dessa tre, Canny, Prewitt och montage . Vi använder Canny- metoden för kantavkänning. Du kan inte heller upptäcka kanten direkt från originalbilden, först måste du konvertera den till gråskala och sedan kan du upptäcka kanterna.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2gray (aedge); aedge = edge (aedge , 'Canny') ' axlar (handtag.axar1); imshow (aedge);
7. Rotera bilden medurs
I funktionen "medurs" , kopiera och klistra in koden nedan för att rotera bilden medurs med kommandot imrotate (filnamn, "vinkel")
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 270); axlar (handtag. axlar1); imshow (aclock);
8. Rotera bilden moturs
I funktionen "moturs" , kopiera och klistra in nedanstående kod för att rotera bilden moturs med kommandot imrotate (filnamn, "vinkel")
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 90); axlar (handtag. axlar1); imshow (aclock);
Kör MATLAB GUI-kod för bildbehandling
Klicka nu på "KÖR" -knappen för att köra den redigerade koden i.m-filen
MATLAB kan ta några sekunder att svara, klicka inte på några GUI-knappar förrän MATLAB visar upptaget meddelande i det nedre vänstra hörnet som visas nedan,
När allt är klart importerar du bilden från datorn genom att klicka på knappen 'Ladda upp bild'. Nu kommer du att kunna konvertera eller rotera bilden genom att klicka på valfri knapp därefter. Nedanstående tabell visar uppgiften vi utför genom att klicka på någon knapp:
Resultatet genom att klicka på varje knapp kommer att visas nedan,
Fullständig bearbetning av varje knapp visas i videon nedan.
Du kan till och med göra avancerad bildbearbetningsnivå med Image Processing Toolbox som du kan köpa från MATHWORKS officiella webbplats, några av avancerade nivåoperationer listas nedan:
- Geometriska operationer
- Blockera operationer
- Linjär filtrering och filterdesign
- Transforms
- Bildanalys och förbättring
- Binära bildoperationer