Convertir OpenCV du Rect pour dlib du rectangle?
J'utilise OpenCV visage du détecteur avec le C++ pour dlib le visage de l'alignement à la place de dlib du détecteur à cause de la lenteur de la vitesse.
Pour utiliser dlib le visage de l'alignement, j'ai passer la détection rectangle à la face de l'alignement de la fonction.
Cependant, je ne peux pas le faire, même si dlib du détecteur est ok.
Parce que std::vector<rectangle> dets
est utilisé dans dlib un exemple de code, j'ai essayé d'assigner comme indiqué ci-dessous, mais je ne pouvais pas.
Notez que detect_rect
est la détection de visage rectangle par OpenCV du détecteur.
dets[0].l = detect_rect.left;
dets[0].t = detect_rect.top;
dets[0].r = detect_rect.right;
dets[0].b = detect_rect.bottom;
Pourriez-vous me donner des conseils?
Merci.
dlib utilise .l' .t .r .b? Pouvez-vous expliquer de quelle manière ils doivent être interprétés? C'est peut-être la distance à partir de ceux des bords de l'image (donc une sorte de culture)? Si oui, vous aurez à utiliser:
Dlibs visage le détecteur n'est pas lent. Êtes-vous sûr que vous avez exécuté en mode release?
Désolé, je ne pouvais résoudre par moi-même! Les prochains codes de travail!
.l = rect.x;
.t = rect.y;
.r = imageWidth - (rect.x+rect.width);
.b = imageHeight - (rect.y+rect.height);
Dlibs visage le détecteur n'est pas lent. Êtes-vous sûr que vous avez exécuté en mode release?
Désolé, je ne pouvais résoudre par moi-même! Les prochains codes de travail!
rectangle rect(left, top, right, bottom);
dets.push_back(rect);
Merci!OriginalL'auteur univ_student | 2016-01-19
Vous devez vous connecter pour publier un commentaire.
Il est à noter que OpenCV utilise la définition suivante:
dlib définition inclut toutes les frontières, de sorte que la fonction de conversion est de prendre soin de décaler le coin en bas à droite de 1.
Voici une fonction que j'ai dans mon Utils.h
Et dans l'autre sens:
rectangle rect(left, top, right, bottom);
dets.push_back(rect);
Je pense que mes codes sont les mêmes pour votre code. Merci pour votre réponse!OriginalL'auteur lahjaton_j
L'idée est bonne, mais vous êtes en train de faire de mal à accéder à
cv::Rect
'éléments.Il devrait être:
rectangle rect(left, top, right, bottom);
dets.push_back(rect);
Merci!OriginalL'auteur herohuyongtao