Смотрите черную рамку вместо глубины изображения с Asus Xition Pro и OpenCV

StackOverflow https://stackoverflow.com/questions/19823873

  •  04-07-2022
  •  | 
  •  

Вопрос

Я на самом деле могу получить изображение RGB от моего Asus Xion, но не могу получить какое -либо глубинное изображение. Вместо этого я вижу черное изображение, и нет ошибки.

Образец Simpleview, приведенный с помощью OpenNi Works, поэтому я думаю, что это не датчик, а не библиотека и OpenCV, кажется, работают правильно.

Есть идеи?

Вот мой код:

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"

#include <iostream>

using namespace cv;
using namespace std;

int main( int argc, char* argv[] )
{

    cout << "Device opening ..." << endl;
    VideoCapture captureStream;
    captureStream.open(CV_CAP_OPENNI_ASUS);


    if( !captureStream.isOpened() ){
        cout << "Can not open capture object." << endl;
        return -1;
    }

    for(;;){
        Mat depth;

        if( !captureStream.grab() ){
            cout << "ASUS Xtion can not grab images." << endl;
            return -1;
        }else
            if( captureStream.retrieve( depth, CV_CAP_OPENNI_DEPTH_MAP) )
                imshow("depth",depth);

        if( waitKey( 30 ) == 27 )   break;

    }

    return 0;
}

Благодарю вас!

Это было полезно?

Решение

А Пример кода OpenCV фактически использует этот код для извлечения и отображения карты глубины:

Mat depth;
capture.retrieve( depth, CV_CAP_OPENNI_DEPTH_MAP )
const float scaleFactor = 0.05f;
Mat show; 
depth.convertTo( show, CV_8UC1, scaleFactor );
imshow( "depth map", show );
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top