2016-12-16 22 views
1

通常のウェブカメラではなくZedカメラで入力を取得することで、dlibとwebcam_face_pose_exのzed 3Dカメラを統合しようとしています。openCV MatをDlibの画像に変換する

この問題は、キャプチャされたイメージマトリクスをdlibで使用するように一致させるときに発生します。 DLIBにIは、CVを変換する必要が:: Iは、以下のように実施例内で使用されDLIBの特別な形式であるゼッドカメラから検索された画像のマット:

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` 

Iの場合は、次のエラーを表示します次のように第二のステップはやって:

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 

あなたはこれを引き起こす可能性があるDLIB形式にOpenCVの画像マトリックス間の変換と間違って何を知っていますか?

答えて

1

あなたが貼り付けられたエラーは、あなたが与えた

ピクセルタイプがオープンCVマットオブジェクトによって使用されるピクセルと一致していないと言います。

また、画像がシングルチャンネルであることがわかります。それはBGRのイメージではありません。 8bitのグレースケールのように見えるので、unsigned charのようなものをピクセルとして使用する必要があります。

関連する問題