Bonjour,
Je n'arrive pas à dessiner un simple rectangle sur OpenCV...
J'arrive seulement à dessiner une ligne horizontale en haut de la fenêtre windows.
Lorsque j'utilise le code suivant pour tracker la face il n'y a pas de problèmes le rectangle apparaît autour du visage:
Avec la dernière ligne de code j'ai même pu observer les coordonnées des rectangles pour vérifier les coordonnées de ma fenêtre windows.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 std::vector<cv::Rect> faces; face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE|CV_HAAR_FIND_BIGGEST_OBJECT, cv::Size(150, 150) ); for( int i = 0; i < faces.size(); i++ ) { rectangle(debugImage, faces[i], 1234); printf("testets %d \n", faces[i].tl().y); }
Lorsque j'essaie ce code rien n'apparaît à l'écran:
Lorsque j'essaie ce code (en essayant plusieurs possibilités pour les coordonnées), une ligne apparaît en haut de l'écran (se déplaçant parfois suivant les coordonnées des points):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Rect face1; Point topleft=(100,100); Point botomright=(150,150); face1.tl()=topleft; face1.br()=botomright; rectangle(debugImage, face1, 1234);
C'est comme si le rectangle était tracé en dehors des limites de la fenêtre windows. Pourtant, comme je l'ai dit plus haut, j'ai vérifié les coordonnées de la fenêtre windows et il me semble donc être dans le bon intervalle. J'ai également inversé l'ordre des points avec "topleft" avant "botomright".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Point topleft=(100,100); Point botomright=(150,150); rectangle(debugImage, botomright, topleft, 1234);
Cela devrait pourtant être une fonction simple à réaliser...
Je ne vois pas où est le problème.
Quelqu'un pourrait-il m'aider svp?
Cordialement.
Kévin LELU
Partager