@@ -54,17 +54,25 @@ void FaceProcessor::enrollImage(const cv::Mat &rgbImage, double &resV, double &r
54
54
cv::resize (rgbImage, img, cv::Size (640 , 360 ), 0.0 , 0.0 , CV_INTER_AREA);
55
55
scaleX = (double )rgbImage.cols / 640.0 ;
56
56
scaleY = (double )rgbImage.rows / 360.0 ;
57
- } else {
57
+ } else if ( (( float )rgbImage. cols /rgbImage. rows ) > 1.0 ) {
58
58
cv::resize (rgbImage, img, cv::Size (640 , 480 ), 0.0 , 0.0 , CV_INTER_AREA);
59
59
scaleX = (double )rgbImage.cols / 640.0 ;
60
60
scaleY = (double )rgbImage.rows / 480.0 ;
61
+ } else if ( ((float )rgbImage.rows /rgbImage.cols ) > 14.0 /9.0 ) {
62
+ cv::resize (rgbImage, img, cv::Size (360 , 640 ), 0.0 , 0.0 , CV_INTER_AREA);
63
+ scaleX = (double )rgbImage.cols / 360.0 ;
64
+ scaleY = (double )rgbImage.rows / 640.0 ;
65
+ } else {
66
+ cv::resize (rgbImage, img, cv::Size (480 , 640 ), 0.0 , 0.0 , CV_INTER_AREA);
67
+ scaleX = (double )rgbImage.cols / 480.0 ;
68
+ scaleY = (double )rgbImage.rows / 640.0 ;
61
69
}
62
70
} else {
63
71
img = rgbImage;
64
72
}
65
73
66
74
std::vector<cv::Rect > faces;
67
- m_classifier.detectMultiScale (img, faces, 1.15 , 5 , cv::CASCADE_FIND_BIGGEST_OBJECT, m_minFaceSize);
75
+ m_classifier.detectMultiScale (img, faces, 1.2 , 5 , cv::CASCADE_FIND_BIGGEST_OBJECT, m_minFaceSize);
68
76
69
77
if (faces.size () > 0 ) {
70
78
__updateRects (faces[0 ]);
0 commit comments