void numberOfFaces(string filePath) { if (!instance.get()) { CascadeClassifier* face_cascade = new CascadeClassifier(); face_cascade->load(face_cascade_name); instance.reset(face_cascade); } Mat faceImage = imread(filePath, IMREAD_COLOR); if (faceImage.empty()) // Check for invalid input { cout << "Could not open or find the image" << endl; return; } Mat frame_gray; std::vector<Rect> faces; cvtColor(faceImage, frame_gray, CV_BGR2GRAY); equalizeHist(frame_gray, frame_gray); instance->detectMultiScale(frame_gray, faces, 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(30, 30)); int numFaces = faces.size(); //cout << "Found " << numFaces << " faces in image: " << filePath << endl; totalFaces.fetch_add(numFaces, boost::memory_order_seq_cst); //cout << "Total: " << totalFaces << endl; /*if (numFaces > 0) { drawFaceElipse(faceImage, faces); }*/ }