OpenCV с сомнениями Kinect Beineer - PullRequest
2 голосов
/ 15 августа 2011

У меня есть OpenCV и libfreenect, настроенные на моем Ubuntu 11.04, и они работают отдельно. У меня также есть некоторый опыт работы с OpenCV, но проблема в том, что я не знаю, как объединить и kinect, и OpenCV. Я надеялся, что кто-нибудь любезно поможет мне, указав на хорошую документацию или предоставив простой пример кода использования kinect в OpenCV.

Ответы [ 3 ]

3 голосов
/ 15 августа 2011

Первая ссылка в Google для "OpenCV kinect" была this . Надеюсь, это поможет.

2 голосов
/ 30 декабря 2011

Чтобы быстро все заработало, я бы порекомендовал включить библиотеки opencv в один из примеров openni (например, NiUserTracker).Там вы можете получить изображение глубины из объекта DepthMetaData следующим образом.

//obtain depth image
DepthMetaData depthMD;
g_DepthGenerator.GetMetaData(depthMD);
const XnDepthPixel* g_Depth = depthMD.Data();
cv::Mat DepthBuf(480,640,CV_16UC1,(unsigned char*)g_Depth);
//To display the depth image you probably would want to normalize it to 0-255 range first


//obtain rgb image
ImageMetaData ImageMD;
g_ImageGenerator.GetMetaData(ImageMD);
const XnUInt8* g_Img =ImageMD.Data();
cv::Mat ImgBuf(480,640,CV_8UC3,(unsigned short*)g_Img);
cv::Mat ImgBuf2;
cv::cvtColor(ImgBuf,ImgBuf2,CV_RGB2BGR);
1 голос
/ 07 октября 2012

Чтобы получить рабочий код MrglMrgl, мне пришлось добавить следующее в начале:

nRetVal = g_Context.FindExistingNode(XN_NODE_TYPE_IMAGE, g_ImageGenerator);
if (nRetVal != XN_STATUS_OK)
{
     printf("No image node exists! Check your XML.");
     return 1;
}

И это в финале:

cv::namedWindow( "Example1", CV_WINDOW_AUTOSIZE ); 
cv::imshow( "Example1", ImgBuf2 );
cv::waitKey(0);
...