Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. extern CascadeClassifier face_cascade;
  2. extern CascadeClassifier eyes_cascade;
  3. extern CascadeClassifier nose_cascade;
  4. extern CascadeClassifier mouth_cascade;
  5.  
  6. void faceDetection(){
  7. Mat src, dst;
  8.  
  9. String face_cascade_name = "haarcascade_frontalface_alt.xml";
  10. String eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml";
  11. if (!face_cascade.load(face_cascade_name))
  12. {
  13. printf("Error loading face cascades !\n");
  14. return;
  15.  
  16. }
  17. if (!eyes_cascade.load(eyes_cascade_name))
  18. {
  19. printf("Error loading eyes cascades !\n");
  20. return;
  21. }
  22. char fname[MAX_PATH];
  23. while (openFileDlg(fname)){
  24. src = imread(fname, CV_LOAD_IMAGE_COLOR);
  25. dst = src.clone();
  26. int minFaceSize = 30;
  27. int minEyeSize = minFaceSize / 5;
  28.  
  29. FaceDetectandDisplay("dst", dst, minFaceSize, minEyeSize);
  30. waitKey(0);
  31.  
  32. }
  33. }
  34.  
  35. void faceDetectionAll(){
  36. Mat src, dst;
  37. vector<Rect> faces;
  38.  
  39. String face_cascade_name = "lbpcascade_frontalface.xml";
  40. String eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml";
  41. String nose_cascade_name = "haarcascade_mcs_nose.xml";
  42. String mouth_cascade_name = "haarcascade_mcs_mouth.xml";
  43. // Load the cascades
  44. if (!face_cascade.load(face_cascade_name))
  45. {
  46. printf("Error loading face cascades !\n");
  47. return;
  48. }
  49. if (!eyes_cascade.load(eyes_cascade_name))
  50. {
  51. printf("Error loading eyes cascades !\n");
  52. return;
  53. }
  54. if (!nose_cascade.load(nose_cascade_name))
  55. {
  56. printf("Error loading nose cascades !\n");
  57. return;
  58. }
  59. if (!mouth_cascade.load(mouth_cascade_name))
  60. {
  61. printf("Error loading mouth cascades !\n");
  62. return;
  63. }
  64. char fname[MAX_PATH];
  65. while (openFileDlg(fname)){
  66. src = imread(fname, CV_LOAD_IMAGE_COLOR);
  67. dst = src.clone();
  68. int minFaceSize = 30;
  69. int minEyeSize = minFaceSize / 5;
  70.  
  71. FaceDetectandDisplayAll("Dst", dst, minFaceSize, minEyeSize, faces);
  72. waitKey(0);
  73.  
  74. }
  75. }
  76.  
  77. void faceDetectionVideo(){
  78. VideoCapture cap(0);
  79. if (!cap.isOpened())
  80. return;
  81.  
  82. String face_cascade_name = "haarcascade_frontalface_alt.xml";
  83.  
  84. if (!face_cascade.load(face_cascade_name))
  85. {
  86. printf("Error loading face cascades !\n");
  87. return;
  88. }
  89.  
  90. Mat frame_gray;
  91. namedWindow("camera", 1);
  92. for (;;)
  93. {
  94. std::vector<Rect> faces;
  95. Mat frame;
  96. cap >> frame;
  97. cvtColor(frame, frame_gray, CV_BGR2GRAY);
  98.  
  99. equalizeHist(frame_gray, frame_gray);
  100. int minFaceSize = 30;
  101. int minEyeSize = minFaceSize / 5;
  102. face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE,
  103. Size(minFaceSize, minFaceSize));
  104.  
  105. for (int i = 0; i < faces.size(); i++)
  106. {
  107.  
  108. Point center(faces[i].x + faces[i].width*0.5, faces[i].y + faces[i].height*0.5);
  109. Point upLeft(faces[i].x, faces[i].y);
  110. Point downRight(faces[i].x + faces[i].height, faces[i].y + faces[i].width);
  111.  
  112. rectangle(frame, upLeft, downRight, Scalar(255, 0, 255), 2, 8, 0);
  113.  
  114.  
  115. }
  116.  
  117. imshow("camera", frame);
  118. if (waitKey(30) >= 0)
  119. break;
  120. }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement