【发布时间】:2011-04-01 22:50:51
【问题描述】:
我使用的是 Kinect 和 OpenCV(我使用的是 c++)。我可以获得 RGB 和深度图像。 使用 RGB 图像,我可以像往常一样“播放”,模糊它,使用 canny(将其转换为灰度之后),......但我不能对深度图像做同样的事情。每次我想对深度图像做一些事情时,我都会遇到异常。
我有以下代码来获取深度图像:
CvMat* depthMetersMat = cvCreateMat(480, 640, CV_16UC1 );
CvMat* imageMetersMat = cvCreateMat(480, 640, CV_16UC1 );
IplImage *kinectDepthImage = cvCreateImage( cvSize(640,480),16,1);
const XnDepthPixel* pDepthMap = depth.GetDepthMap();
for (int y=0; y<XN_VGA_Y_RES; y++){
for(int x=0;x<XN_VGA_X_RES;x++){
depthMetersMat->data.s[y * XN_VGA_X_RES + x ] = 10 * pDepthMap[y * XN_VGA_X_RES + x];
}
}
cvGetImage(depthMetersMat, kinectDepthImage);
问题是我对 kinectDepthImage 无能为力。我尝试将其转换为灰度,然后使用 canny,但我不知道如何转换。
基本上我想将 canny 和 laplacian 应用于深度图像。
【问题讨论】:
标签: c++ visual-c++ opencv kinect