Heim > Java > javaLernprogramm > Wie erkennt man Gesichter in Bildern mithilfe der Java OpenCV-Bibliothek?

Wie erkennt man Gesichter in Bildern mithilfe der Java OpenCV-Bibliothek?

WBOY
Freigeben: 2023-08-20 09:09:08
nach vorne
881 Leute haben es durchsucht

Die CascadeClassifier-Klasse wird zum Laden von Klassifikationsdateien und zum Erkennen erforderlicher Objekte in Bildern verwendet.

Die Methode discoverMultiScale() dieser Klasse kann mehrere Objekte unterschiedlicher Größe erkennen. Diese Methode akzeptiert ein Mat-Klassenobjekt −

  • , um das Eingabebild zu speichern.

  • Ein MatOfRect-Klassenobjekt, das zum Speichern erkannter Gesichter verwendet wird.

Um die Anzahl der Gesichter im Bild zu ermitteln: −

  • Verwenden Sie die CascadeClassifier-Klasse, um die Datei lbpcascade_frontalface.xml zu laden.

  • Rufen Sie die Methode discoverMultiScale() auf.

  • MatOfRect-Objekt in Array konvertieren.

  • Die Länge des Arrays ist die Anzahl der Gesichter im Bild.

Beispiel

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
public class FaceDetection {
   public static void main (String[] args) {
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      //Reading the Image from the file
      String file ="D:\Images\faces.jpg";
      Mat src = Imgcodecs.imread(file);
      //Instantiating the CascadeClassifier
      String xmlFile = "lbpcascade_frontalface.xml";
      CascadeClassifier classifier = new CascadeClassifier(xmlFile);
      //Detecting the face in the snap
      MatOfRect faceDetections = new MatOfRect();
      classifier.detectMultiScale(src, faceDetections);
      System.out.println(String.format("Detected %s faces",
      faceDetections.toArray().length));
      //Drawing boxes
      for (Rect rect : faceDetections.toArray()) {
         Imgproc.rectangle(
            src,
            new Point(rect.x, rect.y),
            new Point(rect.x + rect.width, rect.y + rect.height),
            new Scalar(0, 0, 255),
            3
         );
      }
      //Writing the image
      Imgcodecs.imwrite("D:\Images\face_Detection.jpg", src);
      System.out.println("Image Processed");
   }
}
Nach dem Login kopieren

Eingabe

如何使用Java OpenCV库在图像中检测人脸?

Ausgabe

rreee

Das obige ist der detaillierte Inhalt vonWie erkennt man Gesichter in Bildern mithilfe der Java OpenCV-Bibliothek?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage