在我的应用程序中,我得到的深度框架类似于从深度基础样本中检索的深度框架。我不明白的是,为什么图像中存在不连续的层次?我不知道我将这些深度值的突然变化称为什么。显然,我右手的一半都是黑色的,我的左手似乎分为3个这样的等级。这是什么,我该如何删除它?Kinect深度图像
Kinect Depth Basics Sample http://i46.tinypic.com/2hwekxd.jpg
当我运行KinectExplorer示例应用程序,我得到的深度如下。这是我想要从原始深度数据生成的深度图像。
Kinect Explorer http://i50.tinypic.com/2rwx1z5.jpg
我使用微软Kinect SDK的(V1.6)NuiApi与OpenCV的一起。我有以下代码:
BYTE *pBuffer = (BYTE*)depthLockedRect.pBits; //pointer to data having 8-bit jump
USHORT *depthBuffer = (USHORT*) pBuffer; //pointer to data having 16-bit jump
int cn = 4;
this->depthFinal = cv::Mat::zeros(depthHeight,depthWidth,CV_8UC4); //8bit 4 channel
for(int i=0;i<this->depthFinal.rows;i++){
for(int j=0;j<this->depthFinal.cols;j++){
USHORT realdepth = ((*depthBuffer)&0x0fff); //Taking 12LSBs for depth
BYTE intensity = (BYTE)((255*realdepth)/0x0fff); //Scaling to 255 scale grayscale
this->depthFinal.data[i*this->depthFinal.cols*cn + j*cn + 0] = intensity;
this->depthFinal.data[i*this->depthFinal.cols*cn + j*cn + 1] = intensity;
this->depthFinal.data[i*this->depthFinal.cols*cn + j*cn + 2] = intensity;
depthBuffer++;
}
}
请仔细检查图片,他们没有显示。 –
更改了图片网址。再检查一遍。 – thinkquester
什么是“cn”,它真的必须是“4”而不是“3”吗?也可以看看你实际输出图像的位置。 – Tim