Rumah > Java > javaTutorial > Bagaimana untuk mengesan wajah dalam imej menggunakan perpustakaan OpenCV Java?

Bagaimana untuk mengesan wajah dalam imej menggunakan perpustakaan OpenCV Java?

WBOY
Lepaskan: 2023-08-20 09:09:08
ke hadapan
877 orang telah melayarinya

Kelas CascadeClassifier digunakan untuk memuatkan fail pengelas dan mengesan objek yang diperlukan dalam imej.

Kaedah detectMultiScale() kelas ini boleh mengesan berbilang objek dengan saiz yang berbeza. Kaedah ini menerima objek kelas Mat −

  • untuk menyimpan imej input.

  • Objek kelas MatOfRect yang digunakan untuk menyimpan muka yang dikesan.

Untuk mendapatkan bilangan muka dalam imej −

  • Gunakan kelas CascadeClassifier untuk memuatkan fail lbpcascade_frontalface.xml.

  • Panggil kaedah detectMultiScale() .

  • Tukar objek MatOfRect kepada tatasusunan.

  • Panjang tatasusunan ialah bilangan muka dalam imej.

Contoh

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");
   }
}
Salin selepas log masuk

Input

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

Output

No of faces detected: 3
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengesan wajah dalam imej menggunakan perpustakaan OpenCV Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan