Bonjour,
voila j'essai de developper une application sur IOS permettant la detection faciale, ainsi que la localisation possible des cheveux. Pour cela pas de problème j'ai utilisé LBP cascade qui m'a l'air assez rapide après les premiers tests. Cependant je voudrais pouvoir encadrer un "échantillon" des cheveux, pour cela j'ai pensé:
-puisque les cheveux sont nécessairement au dessus de la tête chez un humain, pourquoi pas dessiner un plus petit rectangle dans celui qui se charge de la detection faciale. Pour cela j'ai modifié mon programme, mais cependant une erreur s'affiche quand je compile: Reference to point is ambiguous.
voici mon code:
#pragma mark - CvVideoCameraDelegate
- (void)processImagecv::Mat &)image {
Mat gray;
std::vector<cv::Rect> faces;
Scalar color = Scalar(0, 255, 0);
cvtColor(image, gray, COLOR_BGR2GRAY);
_faceDetector.detectMultiScale(gray, faces, 1.1, 2, 0, cv::Size(60, 60));
for (int i = 0; i < faces.size(); i++) {
rectangle(image, faces[i], color, 1);
// cette partie la est censée dessiné le plus petit rectangle, sachez que j'adapterais les données de x, y et h, w après les premiers tests. Mais pour cela il faut que je me débarrasse de l'erreur !
// x, y should move the rectangle to the desired position
int x = faces[i].x + (x/3);
int y = faces[i].y*0.3 - (y/3);
// h, w should resize the rectangle
int he = y+faces[i].height*0.1 ;
int we = x+faces[i].width*0.1;
rectangle(image, Point (x,y), Point (we,he), Scalar(255,0,255), 2, 8, 0);
}
}
@end
J'ai pensé à overcome Point, mais je n'y arrive pas trop bien.
Merci de votre aide
Partager