首先感谢 @aipiano 给我的指引 http://blog.csdn.net/AIchipmunk/article/details/9264703
具体过程
这个深度图像:
这个是颜色图像
在aipiano 方法中需要提取深度图像的深度值,但深度图像用微软自带Kinect的是经过处理后的,所以需要将微软的源代码进行修改,提取深度图像的原始数据。我将其原始数据用opencv存起来 具体参照
http://guoming.me/kinect2-depth-opencv
然后用opencv 对深度图像和颜色图像进处理。具体步骤参照 http://blog.csdn.net/AIchipmunk/article/details/9264703
结果:
效果还是挺好的。
下面还有几点需要注意的。
1.原方法中其所需要分辨率比例最好一致,后面aipiano 也说了像素比例会反应在相机内参中,所以这一点不用关心。我用的是Kinect2.0 自带的深度相机(512x424)
和颜色相机(1920x1080)。可是仔细一看确实会还是会出现问题,图像压缩了16:9,所以最好颜色相机和深度相机的比例是一致的。
2.深度数据的问题,都知道深度图的像素值(16位)就是深度值,但是我从网上发现有两种格式,http://blog.csdn.net/zouxy09/article/details/8146719
3.刚屁跌屁跌地把结果给老板看,擦还是有错误,就是从图像上可以看出图像中的棋盘出现了错位,这个应该可以通过修改图像T的值来进行调整。
经过测试,我这里使用到的是:唯一表示深度值,像素的低12位表示一个深度值,高4位未使用。
代码就不贴了,公司的项目。代码还是自己写的好,这个成就感杠杠的,有问题可以在下面提问。0.0