Computer >> Máy Tính >  >> Lập trình >> C ++

Làm cách nào để đếm số khuôn mặt trong OpenCV bằng C ++?

Dễ dàng đếm số lượng khuôn mặt nằm trong một hình ảnh. Chương trình chúng ta đã viết trong phần trước đã có thông tin về số lượng khuôn mặt trong 'face.size ()'. Code-'faces.size () 'này cung cấp một giá trị số nguyên.

Ví dụ:nếu chúng ta viết 'int x =face.size ()', thì 'x' sẽ chứa số lượng khuôn mặt.

Chương trình sau đây tính toán số lượng khuôn mặt từ một hình ảnh nhất định và hiển thị nó trong cửa sổ bảng điều khiển.

Ví dụ

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/objdetect/objdetect.hpp>
//This header includes the definition of Cascade Classifier//
#include<string>
using namespace std;
using namespace cv;
int main(int argc, char** argv){
   Mat image_with_humanface;//Declaring a matrix to load image with human faces//
   image_with_humanface = imread("friends.jpg");//loading an image that contains human face in it//
   string trained_classifier_location = "C:/opencv/sources/data/haarcascades/haarcascade_frontalface_alt.xml";//Defining the location our XML Trained Classifier in a string//
   CascadeClassifier faceDetector;//Declaring an object named 'face detector' of CascadeClassifier class//
   faceDetector.load(trained_classifier_location);//loading the XML trained classifier in the object//
   vector<Rect>faces;//Declaring a rectangular vector named faces//
   faceDetector.detectMultiScale(image_with_humanface, faces, 1.1, 4, CASCADE_SCALE_IMAGE, Size(20, 20));//Detecting the faces in 'image_with_humanfaces' matrix//
   int x = faces.size();//Calculating the number of faces and storing the integer value in x//
   cout << "Number of face(s)in the image=" << x << endl;//Displaying the value of x in the console window//
   system("pause");//Pausing the system to visualize the result//
   return 0;
}

Đầu ra

Làm cách nào để đếm số khuôn mặt trong OpenCV bằng C ++?