Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Das Hauptziel dieser Anleitungen ist es zu zeigen, wie einfach die Bildverarbeitung mit Hilfe von MATLAB. sein wird
Gesichtserkennung und -verfolgung war ein wichtiges und aktives Forschungsgebiet, deshalb werde ich erklären, wie dies mit dem Matlab möglich ist.
Im folgenden Tutorial werde ich die folgenden Dinge tun:
1. Gesichter in einem Bild erkennen und zählen.
2. menschliche Augen in einem Bild erkennen und zählen.
3. Erkennen des menschlichen Mundes in einem Bild und Zählen.
4. Gesichter in einem Video erkennen und zählen.
5. menschliche Augen in einem Video erkennen und zählen.
6. Erkennen des menschlichen Mundes in einem Video und Zählen.
Schritt 1: Gesichter in einem Bild erkennen und zählen
MATLAB-SKRIPT:
lösche alle % lösche alle Objekteclc % lösche den Bildschirm
FDetect = vision. CascadeObjectDetector; %Erkennen von Objekten mit dem Viola-Jones-Algorithmus
%Lesen Sie das Eingabebild
image = imread('c:\Deskotp\HarryPotter.jpg'); %laden Sie das Bild mit imread('Dateispeicherort\name.jpg')
BB = Schritt(FDetect, Bild); %Gibt Bounding Box-Werte basierend auf der Anzahl der Objekte zurück
Abbildung, imshow(I);
festhalten
für i = 1:Größe (BB, 1)
Rechteck('Position', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rot, g-grün, b-blau
Ende
title('Gesichtserkennung'); %Titel der Figur halten aus;
Das Ergebnis wird wie das Bild sein, das in diesem Schritt selbst angehängt wurde
So zählen Sie die Anzahl der erkannten Gesichter:
Alles löschen % Alle Objekte löschenclc %Bildschirm löschen
FDetect = vision. CascadeObjectDetector; %Erkennen von Objekten mit dem Viola-Jones-Algorithmus %Lesen Sie das Eingabebild
image = imread('c:\Deskotp\HarryPotter.jpg'); %laden Sie das Bild mit imread('Dateispeicherort\name.jpg')
BB = Schritt(FDetect, Bild); %Gibt Bounding Box-Werte basierend auf der Anzahl der Objekte zurück
Abbildung,
imshow(I);
festhalten
für i = 1:Größe (BB, 1)
Rechteck('Position', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rot, g-grün, b-blau
Ende
text(10, 10, strcat('\colour{red} Anzahl der Gesichter =', num2str(length(BB)))); Diese Zeile gibt Ihnen die Zählung
title('Gesichtserkennung'); %Titel der Figur
abwarten;
Schritt 2: Erkennen des menschlichen Auges in einem Bild und Zählen
MATLAB-SKRIPT:
alles löschen;
clc;
%Um EyesEyeDetect zu erkennen = vision. CascadeObjectDetector('EyePairBig');
%Lesen Sie die Eingabe
image = imread('c:\Deskotp\HarryPotter.jpg'); %laden Sie das Bild mit imread('Dateispeicherort\name.jpg')
BB=Schritt(EyeDetect, Bild);
Abbildung,
imshow(Bild);
Rechteck('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
title('Augenerkennung');
Das Ergebnis wird wie das Bild sein, das in diesem Schritt selbst angehängt wurde
So zählen Sie die Anzahl der erkannten Augen:
Alles löschen;clc; %Um Augen zu erkennen
EyeDetect = vision. CascadeObjectDetector('EyePairBig');
image = imread('c:\Deskotp\HarryPotter.jpg'); %laden Sie das Bild mit imread('Dateispeicherort\name.jpg')
BB=step(EyeDetect, Bild);Abbildung, imshow(Bild); Rechteck('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
text(10, 10, strcat('\colour{red} Augenzahl =', num2str(length(BB))));
title('Augenerkennung');
Schritt 3: Erkennen des menschlichen Mundes in einem Bild und Zählen
MATLAB-SKRIPT:
alles löschen;
clc;
%Mund erkennen
MouthDetect = vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16);
%Lesen Sie das Eingabebild = imread('c:\Deskotp\HarryPotter.jpg'); %laden Sie das Bild mit imread('Dateispeicherort\name.jpg')
BB=step(MouthDetect, Bild);
Abbildung, imshow(Bild);
festhalten
für i = 1:Größe (BB, 1)
Rechteck('Position', BB(i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
Ende
title('Munderkennung');
abwarten;
Das Ergebnis wird wie das Bild sein, das in diesem Schritt selbst angehängt wurde
Um die Anzahl der erkannten Mouths zu zählen:
alles löschen; clc; %Mund erkennen
MouthDetect = vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16); %Lesen Sie die Eingabe
image = imread('c:\Deskotp\HarryPotter.jpg'); %laden Sie das Bild mit imread('Dateispeicherort\name.jpg') BB=step(MouthDetect, image);
Abbildung, imshow(Bild);
festhalten
für i = 1:Größe (BB, 1)
Rechteck('Position', BB(i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
Ende
text(10, 10, strcat('\colour{red} Anzahl der Münder =', num2str(length(BB))));
title('Munderkennung');
abwarten;
Schritt 4: Gesichter, Augen, Mund in einem Video erkennen und zählen
alles löschen;
alle schließen;
clc;
% Erfassen Sie die Videobilder mit der Videoeingangsfunktion % Sie müssen die Auflösung und den Namen Ihres installierten Adapters ersetzen.
a=vision. CascadeObjectDetector; %um Gesicht zu erkennen
% a=vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16); %um den Mund zu erkennen
% a=vision. CascadeObjectDetector('EyePairBig'); %um Augen zu erkennen
%nur einen verwenden (Gesicht/Augen/Mund)
vid = videoinput('winvideo', 1, 'yuy2_320x240'); % Legen Sie die Eigenschaften des Videoobjekts fest
set(vid, 'FramesPerTrigger', Inf);
set(vid, 'ReturnedColorspace', 'rgb');
vid. FrameGrabInterval = 5; %starten Sie hier die Videoaufnahme
start(vid) % Stellt eine Schleife ein, die nach 100 Bildern der Aufnahme stoppt
while(vid. FramesAcquired<=200) % Schnappschuss des aktuellen Frames holen
Daten = Getsnapshot (vid);
imshow(Daten);
b = Schritt (a, Daten);
festhalten
für i=1:Größe(b, 1)
rechteckig('position', b(i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');
Ende
warte ab
text(10, 10, strcat('\colour{green} Anzahl der Gesichter =', num2str(length(b))));
Ende
stoppen (vid); % Stoppen Sie die Videoaufnahme