Files
Capstone_Design/ch13/cascade/main.cpp
2025-05-14 12:10:39 +09:00

55 lines
1.2 KiB
C++

#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
void detect_face() {
Mat src = imread("../../resources/images/kids.png");
CascadeClassifier classifier("../../resources/haarcascade_frontalface_default.xml");
vector<Rect> faces;
classifier.detectMultiScale(src, faces);
for (auto rc : faces)
rectangle(src, rc, Scalar(255, 0, 255), 2);
imshow("src", src);
waitKey();
destroyAllWindows();
}
void detect_eyes() {
Mat src = imread("../../resources/images/kids.png");
CascadeClassifier face_classifier("../../resources/haarcascade_frontalface_default.xml");
CascadeClassifier eye_classifier("../../resources/haarcascade_eye.xml");
vector<Rect> faces;
face_classifier.detectMultiScale(src, faces);
for (auto face : faces) {
rectangle(src, face, Scalar(255, 0, 255), 2);
Mat faceROI = src(face);
vector<Rect> eyes;
eye_classifier.detectMultiScale(faceROI, eyes);
for (Rect eye : eyes) {
Point center(eye.x + eye.width / 2, eye.y + eye.height / 2);
circle(faceROI, center, eye.width /2, Scalar(255, 0, 0), 2, LINE_AA);
}
}
imshow("src", src);
waitKey();
destroyAllWindows();
}
int main() {
detect_eyes();
}