Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern CascadeClassifier face_cascade;
- extern CascadeClassifier eyes_cascade;
- extern CascadeClassifier nose_cascade;
- extern CascadeClassifier mouth_cascade;
- void faceDetection(){
- Mat src, dst;
- String face_cascade_name = "haarcascade_frontalface_alt.xml";
- String eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml";
- if (!face_cascade.load(face_cascade_name))
- {
- printf("Error loading face cascades !\n");
- return;
- }
- if (!eyes_cascade.load(eyes_cascade_name))
- {
- printf("Error loading eyes cascades !\n");
- return;
- }
- char fname[MAX_PATH];
- while (openFileDlg(fname)){
- src = imread(fname, CV_LOAD_IMAGE_COLOR);
- dst = src.clone();
- int minFaceSize = 30;
- int minEyeSize = minFaceSize / 5;
- FaceDetectandDisplay("dst", dst, minFaceSize, minEyeSize);
- waitKey(0);
- }
- }
- void faceDetectionAll(){
- Mat src, dst;
- vector<Rect> faces;
- String face_cascade_name = "lbpcascade_frontalface.xml";
- String eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml";
- String nose_cascade_name = "haarcascade_mcs_nose.xml";
- String mouth_cascade_name = "haarcascade_mcs_mouth.xml";
- // Load the cascades
- if (!face_cascade.load(face_cascade_name))
- {
- printf("Error loading face cascades !\n");
- return;
- }
- if (!eyes_cascade.load(eyes_cascade_name))
- {
- printf("Error loading eyes cascades !\n");
- return;
- }
- if (!nose_cascade.load(nose_cascade_name))
- {
- printf("Error loading nose cascades !\n");
- return;
- }
- if (!mouth_cascade.load(mouth_cascade_name))
- {
- printf("Error loading mouth cascades !\n");
- return;
- }
- char fname[MAX_PATH];
- while (openFileDlg(fname)){
- src = imread(fname, CV_LOAD_IMAGE_COLOR);
- dst = src.clone();
- int minFaceSize = 30;
- int minEyeSize = minFaceSize / 5;
- FaceDetectandDisplayAll("Dst", dst, minFaceSize, minEyeSize, faces);
- waitKey(0);
- }
- }
- void faceDetectionVideo(){
- VideoCapture cap(0);
- if (!cap.isOpened())
- return;
- String face_cascade_name = "haarcascade_frontalface_alt.xml";
- if (!face_cascade.load(face_cascade_name))
- {
- printf("Error loading face cascades !\n");
- return;
- }
- Mat frame_gray;
- namedWindow("camera", 1);
- for (;;)
- {
- std::vector<Rect> faces;
- Mat frame;
- cap >> frame;
- cvtColor(frame, frame_gray, CV_BGR2GRAY);
- equalizeHist(frame_gray, frame_gray);
- int minFaceSize = 30;
- int minEyeSize = minFaceSize / 5;
- face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE,
- Size(minFaceSize, minFaceSize));
- for (int i = 0; i < faces.size(); i++)
- {
- Point center(faces[i].x + faces[i].width*0.5, faces[i].y + faces[i].height*0.5);
- Point upLeft(faces[i].x, faces[i].y);
- Point downRight(faces[i].x + faces[i].height, faces[i].y + faces[i].width);
- rectangle(frame, upLeft, downRight, Scalar(255, 0, 255), 2, 8, 0);
- }
- imshow("camera", frame);
- if (waitKey(30) >= 0)
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement