- 1. Bildverarbeitung mit dem MATLAB Editor-Fenster
- 2. Bildverarbeitung mit MATLAB GUI
- Erstellen einer grafischen MATLAB-Benutzeroberfläche für die Bildverarbeitung
- MATLAB GUI Code für die Bildverarbeitung
- Führen Sie den MATLAB-GUI-Code für die Bildverarbeitung aus
Stellen Sie sich vor, Sie richten Ihre Kamera auf ein Objekt und die Kamera zeigt Ihnen den Namen dieses Objekts an. Ja, Google Lens auf Android-Smartphones verwendet das Gleiche mit der Bildverarbeitung. Dies gibt dem Computer eine Vision , um die Dinge zu erkennen und zu erkennen und entsprechende Maßnahmen zu ergreifen. Die Bildverarbeitung hat viele Anwendungen wie Gesichtserkennung und -erkennung, Daumenabdruck, Augmented Reality, OCR, Barcode-Scan und vieles mehr. Für die Bildverarbeitung stehen viele Softwareprogramme zur Verfügung, darunter MATLAB.
MATLAB kann viele erweiterte Bildverarbeitungsvorgänge ausführen. Für den Einstieg in die Bildverarbeitung in MATLAB werden hier einige grundlegende Vorgänge wie RGB in Grau, Drehen des Bildes, Binärkonvertierung usw. erläutert. Sie können außerdem automatisierte Programme zur Rauschunterdrückung und zum Bild erstellen Klarheit, Filterung mithilfe der in diesem Lernprogramm erläuterten Funktionen.
Bevor Sie fortfahren, können Sie, wenn Sie MATLAB noch nicht kennen, unsere vorherigen MATLAB-Tutorials lesen, um besser zu verstehen:
- Erste Schritte mit MATLAB: Eine kurze Einführung
- Arduino mit MATLAB verbinden - blinkende LED
- Gleichstrommotorsteuerung mit MATLAB und Arduino
- Schrittmotorsteuerung mit MATLAB und Arduino
- So zeichnen Sie ein Echtzeit-Temperaturdiagramm mit MATLAB
In MATLAB gibt es wie immer zwei Möglichkeiten, einen Bildverarbeitungsalgorithmus auszuführen: Zum einen durch direkte Eingabe des Befehls im Editor / Befehlsfenster und zum anderen durch Erstellen einer GUI für denselben. Hier zeigen wir Ihnen beide Methoden, um grundlegende Operationen der Bildverarbeitung in MATLAB durchzuführen.
1. Bildverarbeitung mit dem MATLAB Editor-Fenster
Jetzt schreiben wir den Code für einige grundlegende Operationen der Bildverarbeitung in das Editorfenster. Folgen Sie dem Link, um sich mit allen in MATLAB verwendeten grundlegenden Begriffen vertraut zu machen. Kopieren Sie den folgenden Code und fügen Sie ihn in das Editorfenster ein.
a = imread ('F: \ Circuit Digest \ Bildverarbeitung mit matlab \ camerman.jpg'); Untergrund (2,3,1); imshow (a); b = rgb2gray (a); Untergrund (2,3,2); imshow (b); c = im2bw (a); Untergrund (2,3,3); imshow (c); d = imadjust (b); Untergrund (2,3,4); imshow (d); e = a; e = rgb2gray (e); Nebenhandlung (2,3,5); imhist (e); imfinfo ('F: \ Circuit Digest \ Bildverarbeitung mit matlab \ beard-man.jpg') = Größe (a) % Farbkarte ('Frühling')
In der Variablen 'a' importieren wir ein Bild mit dem Befehl imread ('Dateiname') und erstellen dann ein Diagramm aus '2' Zeile und '3' Spalte mit einem Unterplot (Zeile, Spalte, Position) und zeigen das importierte Bild an Position an. ' 1 '. Um das Bild zu zeigen, verwenden wir den Befehl imshow ('Dateiname') .
Im Folgenden finden Sie einige Befehle zum Ausführen einiger grundlegender Verarbeitungen für hochgeladene Bilder:
- In der Variablen 'b' konvertieren wir das RGB-Bild mit dem Befehl rgb2gray ('Dateiname') in ein Graustufen-Intensitätsbild und zeigen es im Diagramm an Position '2' an.
- In der Variablen 'c' konvertieren wir das Bild in ein Binärbild oder Sie können es im Format '0' (schwarz) und '1' (weiß) sagen, indem Sie den Befehl im2bw ('Dateiname') verwenden und es im Plot anzeigen Position '3'.
- In der Variablen 'd' passen wir die Graustufenbildintensitätswerte an oder ordnen sie zu , indem wir den Befehl imadjust ('Dateiname') verwenden und sie im Diagramm an Position '4' anzeigen.
- In der Variablen 'e' zeichnen wir das Histogramm des Graustufenbildes mit dem Befehl imhist ('Dateiname') und zeigen es im Plot an Position '5' an. Um das Histogramm zu zeichnen, müssen Sie das Bild immer in Graustufen konvertieren, und dann können Sie das Histogramm dieser Grafikdatei sehen.
- Mit dem Befehl Imfinfo ('Dateiname mit Speicherort') werden Informationen zur Grafikdatei angezeigt.
- Der Befehl = size ('Dateiname') wird verwendet, um die Größen- und Farbebenen einer bestimmten Grafikdatei anzuzeigen.
- Die Farbkarte ('spring') wird verwendet, um den Typ der Farbkarte der Grafikdatei zu ändern. Hier in meinem Code habe ich diesen Befehl als Kommentar festgelegt, aber Sie können ihn verwenden, indem Sie das Prozentzeichen entfernen. Es gibt viele Arten von Farben in MATLAB wie Jet, HSV, Hot, Cool, Sommer, Herbst, Winter, Grau, Knochen, Kupfer, Pink, Linien und Frühling.
So gibt es in MATLAB eine Reihe von Befehlen, mit denen verschiedene Aufgaben ausgeführt werden können. Sie können die Bildverarbeitungsfunktionen in MATLAB überprüfen, indem Sie dem Link folgen.
2. Bildverarbeitung mit MATLAB GUI
Erstellen einer grafischen MATLAB-Benutzeroberfläche für die Bildverarbeitung
Starten Sie zum Erstellen einer grafischen Benutzeroberfläche (GUI) für die Bildverarbeitung die grafische Benutzeroberfläche, indem Sie den folgenden Befehl in das Befehlsfenster eingeben.
leiten
Ein Popup-Fenster wird geöffnet. Wählen Sie dann eine neue leere Benutzeroberfläche aus (siehe Abbildung unten).
Jetzt müssen wir die Anzahl der Drucktasten (jeder Druckknopf führt eine andere Aufgabe aus) und eine Achse auswählen, um das Bild anzuzeigen.
Um die Größe des Druckknopfs oder der Achsen zu ändern oder die Form zu ändern, klicken Sie einfach darauf und Sie können die Ecken der Schaltfläche ziehen. Durch Doppelklicken auf eine dieser Optionen können Sie die Farbe, die Zeichenfolge, das Tag und andere Optionen dieser bestimmten Schaltfläche ändern. Nach der Anpassung sieht es so aus
Sie können die Schaltflächen nach Ihren Wünschen anpassen. Wenn Sie dies speichern, wird im Editorfenster von MATLAB ein Code generiert. Bearbeiten Sie den generierten Code, um die Aufgabe für verschiedene Drucktasten festzulegen. Unten haben wir den MATLAB-Code bearbeitet.
MATLAB GUI Code für die Bildverarbeitung
Der vollständige MATLAB-Code für die Bildverarbeitung mithilfe der MATLAB-Benutzeroberfläche wird am Ende dieses Projekts angegeben. Außerdem stellen wir hier die GUI-Datei (.fig) und die Codedatei (.m) zum Download bereit, mit denen Sie die Schaltflächen- oder Achsengröße gemäß Ihren Anforderungen anpassen können. Wir haben den generierten Code wie unten erläutert bearbeitet.
In der ‚upload‘ Funktion, zu kopieren und die folgenden Code und fügen Sie die Datei vom PC einzufügen. Hier wird der Befehl uigetfile ('Bilderweiterungstyp') zum Importieren von Bildern in die MATLAB-GUI verwendet. Lesen Sie diese Datei mit dem Befehl imread () und zeigen Sie sie dann mit dem Befehl imshow () auf Achsen1 mit Achsen (handle.axes1) an . Speichern Sie nun mit dem Befehl setappdata () die Variable in der GUI, damit die Variable für einen Teil der GUI für den anderen Teil der GUI zugänglich ist.
a = uigetfile ('. jpg') a = imread (a); Achsen (handle.axes1); imshow (a); setappdata (0, 'a', a)
Jetzt sehen Sie in jeder Funktion den Befehl getappdata (), mit dem Daten abgerufen werden, die mit setappdata () in der GUI gespeichert wurden.
Hier werden acht häufig verwendete Funktionen in der Bildverarbeitung erläutert
S. Nr. |
Befehl |
Schaltflächenname |
Durchzuführende Aufgabe |
1. |
uigetfile () |
Bild hochladen |
Klicken Sie hier, um das Bild von der Festplatte zu importieren |
2. |
rgb2gray () |
RGB zu Grau |
Klicken Sie hier, um das RGB-Bild in Graustufen umzuwandeln |
3. |
im2bw () |
In Binärbild konvertieren |
Klicken Sie hier, um das Bild in eine Binärdatei zu konvertieren |
4. |
- - |
RESET |
Klicken Sie hier, um das Bild als Original zurückzusetzen |
5. |
imhist () |
Histogramm |
Klicken Sie hier, um das Histogramm des Bildes anzuzeigen |
6. |
Unvollständigkeit () |
Ergänzungsbild |
Klicken Sie hier, um das Komplementbild zu überprüfen |
7. |
Kante (Dateiname, Methode) |
Kantenerkennung |
Klicken Sie, um die Kanten im Bild zu erkennen |
8. |
imrotieren (Dateiname, Winkel) |
Im Uhrzeiger sinn drehen |
Klicken Sie, um das Bild im Uhrzeigersinn zu drehen |
9. |
imrotieren (Dateiname, Winkel) |
Gegen den Uhrzeigersinn drehen |
Klicken Sie, um das Bild gegen den Uhrzeigersinn zu drehen |
1. Konvertieren Sie ein RGB-Bild in Graustufen
In der ‚rgb2gray‘ Funktion, zu kopieren und die folgenden Code einfügen, um das RGB - Bild in Graustufen konvertiert durch Befehl rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2gray (a); Achsen (handle.axes1); imshow (agray);
2. In Binärbild konvertieren
In der ‚im2bw‘ Funktion, zu kopieren und die folgenden Code einfügen, um das Bild in einem binäres Bild zu konvertieren, oder Sie können mit dem Befehl im Format von ‚0‘(schwarz) und ‚1‘(weiß) sagen im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); Achsen (handle.axes1); imshow (abw);
3. Auf Originalbild zurücksetzen
Kopieren Sie in der Funktion "Zurücksetzen" den folgenden Code und fügen Sie ihn ein, um das bearbeitete Bild in das Originalbild zurückzusetzen.
a = getappdata (0, 'a'); Achsen (handle.axes1); imshow (a);
4. Zeichnen Sie das Bildhistogramm
Kopieren Sie in der Funktion 'Histogramm' den folgenden Code und fügen Sie ihn ein, um das Histogramm des Graustufenbilds mit dem Befehl imhist ('Dateiname') zu zeichnen und auf den Achsen1 anzuzeigen . Um das Histogramm zu zeichnen, müssen Sie das Bild immer in Graustufen konvertieren, und dann können Sie das Histogramm dieser Grafikdatei sehen.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2gray (ahist); Achsen (handle.axes1); Imhist (Ahist);
5. In Komplementbild konvertieren
Kopieren Sie in der Funktion 'Komplementimage' den folgenden Code und fügen Sie ihn ein, um das Komplement der eingefügten Grafikdatei mithilfe des Befehls imcomplement () anzuzeigen .
a = getappdata (0, 'a'); acomp = a; acomp = unvollständig (acomp); Achsen (handle.axes1); imshow (acomp);
6. Kantenerkennung mit der Canny-Methode
Kopieren Sie in der Funktion 'Kante' den folgenden Code und fügen Sie ihn ein, um Kanten im Graustufenbild mithilfe des Befehls edge ('Dateiname', 'Methode') zu erkennen und zu finden. Anstelle der Methode können Sie zwischen diesen drei Optionen wählen: Canny, Prewitt und Montage . Wir verwenden die Canny- Methode zur Kantenerkennung. Außerdem können Sie die Kante nicht direkt aus dem Originalbild erkennen. Zuerst müssen Sie sie in Graustufen konvertieren und dann können Sie die Kanten erkennen.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2gray (aedge); aedge = Kantenachse (aedge , 'Canny') ' (handle.axes1); imshow (aedge);
7. Drehen Sie das Bild im Uhrzeigersinn
Kopieren Sie in der Funktion 'im Uhrzeigersinn' den folgenden Code und fügen Sie ihn ein, um das Bild mit dem Befehl imrotate (Dateiname, 'Winkel') im Uhrzeigersinn zu drehen.
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 270); Achsen (handle.axes1); imshow (aclock);
8. Drehen Sie das Bild gegen den Uhrzeigersinn
Kopieren Sie in der Funktion 'gegen den Uhrzeigersinn' den folgenden Code und fügen Sie ihn ein, um das Bild mit dem Befehl imrotate (Dateiname, 'Winkel') gegen den Uhrzeigersinn zu drehen.
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 90); Achsen (handle.axes1); imshow (aclock);
Führen Sie den MATLAB-GUI-Code für die Bildverarbeitung aus
Klicken Sie nun auf die Schaltfläche 'RUN', um den bearbeiteten Code in der.m-Datei auszuführen
Es kann einige Sekunden dauern, bis MATLAB reagiert. Klicken Sie nicht auf eine GUI-Schaltfläche, bis MATLAB in der unteren linken Ecke eine Besetztmeldung anzeigt (siehe Abbildung unten).
Wenn alles fertig ist, importieren Sie das Bild vom PC, indem Sie auf die Schaltfläche "Bild hochladen" klicken. Jetzt können Sie das Bild konvertieren oder drehen, indem Sie auf eine beliebige Schaltfläche klicken. Die folgende Tabelle zeigt Ihnen die Aufgabe, die wir beim Klicken auf eine bestimmte Schaltfläche ausführen:
Das Ergebnis beim Klicken auf jede Schaltfläche wird unten angezeigt.
Das vollständige Funktionieren jeder Schaltfläche wird im folgenden Video demonstriert.
Mit der Bildverarbeitungs-Toolbox, die Sie auf der offiziellen MATHWORKS-Website erwerben können, können Sie sogar eine erweiterte Bildverarbeitung durchführen. Einige der fortgeschrittenen Funktionen sind unten aufgeführt:
- Geometrische Operationen
- Operationen blockieren
- Lineare Filterung und Filterdesign
- Transformiert
- Bildanalyse und -verbesserung
- Binäre Bildoperationen