1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include <opencv2/imgcodecs.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> #include <opencv2/objdetect.hpp> #include <iostream>
using namespace cv; using namespace std;
int main() { string path = "face.pgm"; Mat img = imread(path);
CascadeClassifier faceCascade; CascadeClassifier eyeCascade; faceCascade.load("haarcascade_frontalface_default.xml"); eyeCascade.load("haarcascade_eye.xml");
if (faceCascade.empty()) { cout << "XML file not loaded" << endl; } if (eyeCascade.empty()) { cout << "XML file not loaded" << endl; } vector<Rect> faces; vector<Rect> eyes; faceCascade.detectMultiScale(img, faces, 1.1, 10); eyeCascade.detectMultiScale(img, eyes, 1.1, 10); for (int i = 0; i < faces.size(); i++) { rectangle(img, faces[i].tl(), faces[i].br(), Scalar(255, 0, 255), 3); } for (int i = 0; i < eyes.size(); i++) { rectangle(img, eyes[i].tl(), eyes[i].br(), Scalar(255, 255, 0), 3); }
imshow("Image", img); waitKey(0);
return 0; }
|