2016-12-16 1 views
1

Je suis en train d'intégrer Dlib avec la caméra 3D Zed dans leur webcam_face_pose_ex en récupérant l'entrée à travers la caméra Zed plutôt que la webcam normale.Conversion OpenCV Mat à l'image de Dlib

Le problème se produit lorsque vous essayez de faire correspondre les matrices d'images capturées à utiliser par le Dlib. En Dlib je dois convertir le cv :: Mat de l'image que je récupérai de la caméra Zed être au format spécial Dlib qui est utilisé dans l'exemple comme dans ci-dessous:

cv::Mat temp = sl::zed::slMat2cvMat(left); // converts the zed Mat to openCV mat  
cv_image<bgr_pixel> cimg(temp); // converts the opencv matrix to dlib matrix` 

Je reçois l'erreur suivante lorsque fait la deuxième étape est la suivante:

Error detected at line 36. 
Error detected in file /home/yomna/Resources/apps/dlib/dlib-master/dlib/../dlib/opencv/cv_image.h. 
Error detected in function dlib::cv_image<pixel_type>::cv_image(cv::Mat) [with pixel_type = dlib::bgr_pixel]. 

Failing expression was img.depth() == cv::DataType<typename pixel_traits<pixel_type>::basic_pixel_type>::depth && img.channels() == pixel_traits<pixel_type>::num. 
The pixel type you gave doesn't match pixel used by the open cv Mat object. 
    img.depth(): 0 
    img.cv::DataType<typename pixel_traits<pixel_type>::basic_pixel_type>::depth: 0 
    img.channels(): 1 
    img.pixel_traits<pixel_type>::num: 3 

savez-vous quel est le problème avec la conversion entre la matrice d'image OpenCV au format Dlib qui pourrait être la cause?

Répondre

1

L'erreur que vous avez collé dit

Le type de pixel que vous avez donné ne correspond pas à pixel utilisé par l'objet Mat cv ouvert.

Il vous indique également que votre image est monocanal. Ce n'est donc pas une image BGR. Il ressemble à 8bit en niveaux de gris, donc vous devez utiliser quelque chose comme char non signé comme le pixel puisque c'est le type d'image que vous avez.