05/14 끝
This commit is contained in:
55
ch13/cascade/main.cpp
Normal file
55
ch13/cascade/main.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
#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();
|
||||
}
|
||||
Reference in New Issue
Block a user