CascadeClassifier क्लास का उपयोग क्लासिफायर फाइल लोड करने और इमेज में वांछित ऑब्जेक्ट्स का पता लगाने के लिए किया जाता है।
इस क्लास की detectMultiScale() मेथड विभिन्न आकारों के कई ऑब्जेक्ट्स का पता लगाती है। यह मेथड स्वीकार करती है −
इनपुट इमेज को रखने वाली
Matक्लास का ऑब्जेक्ट।पता लगाए गए चेहरों को स्टोर करने के लिए
MatOfRectक्लास का ऑब्जेक्ट।
इमेज में चेहरों की संख्या प्राप्त करने के लिए −
CascadeClassifierक्लास का उपयोग करकेlbpcascade_frontalface.xmlफाइल लोड करें।detectMultiScale()मेथड को कॉल करें।MatOfRectऑब्जेक्ट को ऐरे में बदलें।ऐरे की लंबाई इमेज में चेहरों की संख्या है।
उदाहरण
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) { // OpenCV कोर लाइब्रेरी लोड कर रहा है System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); // फाइल से इमेज पढ़ रहा है String file ="D:\\Images\\faces.jpg"; Mat src = Imgcodecs.imread(file); // CascadeClassifier को इंस्टेंटिएट कर रहा है String xmlFile = "lbpcascade_frontalface.xml"; CascadeClassifier classifier = new CascadeClassifier(xmlFile); // स्नैप में चेहरे का पता लगा रहा है MatOfRect faceDetections = new MatOfRect(); classifier.detectMultiScale(src, faceDetections); System.out.println(String.format("Detected %s faces", faceDetections.toArray().length)); // बॉक्स बना रहा है 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 ); } // इमेज लिख रहा है Imgcodecs.imwrite("D:\\Images\\face_Detection.jpg", src); System.out.println("Image Processed"); } }इनपुट

आउटपुट
पता चले चेहरे: 3