我正在使用Kinect和OpenCV(我正在使用C ++)。 我可以获取RGB和深度图像。 对于RGB图像,我可以像往常一样“玩”,模糊它,使用Canny算法(在将其转换为灰度图像后),但我无法对深度图像执行相同的操作。 每次我想要对深度图像进行操作时,都会出现异常。
以下是我获取深度图像的代码:
问题在于我无法处理kinectDepthImage。我尝试将其转换为灰度图像,然后使用Canny算法,但我不知道如何进行转换。
基本上,我想将Canny算法和Laplacian算法应用于深度图像。
以下是我获取深度图像的代码:
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算法应用于深度图像。