我已经使用Kinect和OpenCV(我正在使用C++)。我可以同时获得RGB和深度图像。 对于RGB图像,我可以像往常一样“播放”,使用Canny(将其转换为灰度后)模糊它,...但我无法对深度图像进行同样的操作。每次我想用深度图像做一些事情时,我都会遇到异常情况。Kinect和Opencv,深度图像,如何使用它
我有以下代码来获取深度图像:
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,但我不知道如何转换它。
基本上我想申请坎尼和laplacian深度图像。
内的实际矩阵的指针,如果这是问题的答案,请将其标记为“接受”(点击勾号图标)。 – Spudley 2011-10-15 19:09:58