CascadeClassifier वर्ग का उपयोग क्लासिफायर फ़ाइल को लोड करने और छवि में वांछित वस्तुओं का पता लगाने के लिए किया जाता है।
इस वर्ग का डिटेक्टमल्टीस्केल () विभिन्न आकारों की कई वस्तुओं का पता लगाता है। यह विधि स्वीकार करती है -
-
इनपुट छवि धारण करने वाली कक्षा Mat की एक वस्तु।
-
पता लगाए गए चेहरों को संग्रहीत करने के लिए MatOfRect वर्ग का एक ऑब्जेक्ट।
छवि में चेहरों की संख्या प्राप्त करने के लिए -
-
CascadeClassifier वर्ग का उपयोग करके lbpcascade_frontalface.xml फ़ाइल लोड करें।
-
डिटेक्टमल्टीस्केल () मेथड को इनवाइट करें।
-
MatOfRect ऑब्जेक्ट को एक ऐरे में बदलें।
-
सरणी की लंबाई छवि में चेहरों की संख्या है।
उदाहरण
आयात करें .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) { / /ओपनसीवी कोर लाइब्रेरी को लोड करना System.loadLibrary(Core.NATIVE_LIBRARY_NAME); // फ़ाइल से छवि पढ़ना स्ट्रिंग फ़ाइल ="D:\\Images\\faces.jpg"; मैट स्रोत =Imgcodecs.imread (फ़ाइल); // CascadeClassifier String xmlFile ="lbpcascade_frontalface.xml" को इंस्टेंट करना; कैस्केड क्लासिफायर क्लासिफायर =नया कैस्केड क्लासिफायर (xmlFile); // स्नैप में चेहरे का पता लगाना MatOfRect faceDetections =new MatOfRect (); क्लासिफायर। डिटेक्ट मल्टीस्केल (src, faceDetections); System.out.println (स्ट्रिंग। प्रारूप ("% s चेहरे का पता लगाया", faceDetections.toArray ()। लंबाई)); // (रेक्ट रेक्ट :faceDetections.toArray ()) {Imgproc.rectangle(src, new Point(rect.x, rect.y), new point(rect.x + rect.width, rect.y + rect) के लिए ड्रॉइंग बॉक्स .height), नया स्केलर (0, 0, 255), 3); } // इमेज लिखना Imgcodecs.imwrite("D:\\Images\\face_Detection.jpg", src); System.out.println ("छवि संसाधित"); }}इनपुट
आउटपुट
पहचाने गए चेहरों की संख्या:3