Посмотрите черную рамку вместо изображения глубины с ASUS Xtion Pro и OpenCV

На самом деле я могу получить изображение RGB из своего ASUS Xtion, но не могу получить изображение глубины. Вместо этого я вижу черное изображение, и никаких ошибок не появляется.

Образец SimpleView, предоставленный с OpenNI, работает, так что я полагаю, что это не сенсор, не библиотека, и 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;
}

Спасибо!

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 );
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]