关于kinect V2彩色图和深度图对齐的问题,,超级诡异。。

球场上面压水花 2016-05-21 04:49:51
这个问题已经困扰了我好多天了,我采用的是MapColorFrameToDepthSpace这个方法来映射彩图和深度图的坐标,程序可以顺利运行,而且看似还真是产生了“对齐”之后的图像。可是当我仔细观察后发现,“对齐”图像的轮廓有很宽的空洞。如下图,右边是原始深度图像,坐标是从彩色图映射之后得到的“对齐”图像(本应该是1920*1080,我用opencv来resize了一下)。明显可以看到后脑勺部分很大一块黑色的重影。。。我已经调了三天了,想不通问题到底在哪儿。

我觉得问题可能出在画图这一步,关键的map和画图部分代码如下,请各位大神一定帮忙看看啊,,这个问题折磨的我心力憔悴。。
if (SUCCEEDED(hr)){
rgbdImg.create(cColorHeight, cColorWidth, CV_8UC1); rgbdImg.setTo(0);
mapper->MapColorFrameToDepthSpace(cDepthWidth * cDepthHeight, (UINT16*)pDepthBuffer, cColorWidth * cColorHeight, dpoint);
for (int i = 0; i < 1080; i++){
for (int j = 0; j < 1920; j++){
DepthSpacePoint depthPoint = dpoint[i * 1920 + j];
if ((depthPoint.X >= 0) && (depthPoint.X < 512) && (depthPoint.Y >= 0) && (depthPoint.Y < 424))
{
rgbdImg.at<uchar>(i, j) = depthImg.at<uchar>(depthPoint.Y, depthPoint.X);
}
}
}
Mat rgbd; resize(rgbdImg, rgbd, Size(1920 / 3, 1080 / 3));
imshow("rgbd", rgbd);
}
...全文
7324 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_41581769 2018-12-05
  • 打赏
  • 举报
回复
是因为视角差吗
verystory 2017-05-18
  • 打赏
  • 举报
回复
请问你用的是 SDKs 还是 openni2 控制的 ? kinect_v2 的深度图 分辨率 在程序中需要设置吗 ? 因为kinect_v1 官方的分辨率是320x240 但是我使用openni 设置的是 和rgb一样的 640x480 也是可以的..
Halayxz 2017-04-12
  • 打赏
  • 举报
回复
引用 7 楼 ludwigmeister 的回复:
那么,如何解决呢
请问鱼眼的问题解决了吗?
Chao SH 2017-01-24
  • 打赏
  • 举报
回复
那么,如何解决呢
u010207742 2016-12-23
  • 打赏
  • 举报
回复
黑色的重影应该是重新映射过程中,获取的映射坐标有小数,四舍五入后存在重采样
Chao SH 2016-12-07
  • 打赏
  • 举报
回复
忘记放图了,放上一张微软示例代码运行下的图
Chao SH 2016-12-07
  • 打赏
  • 举报
回复
运行了微软给出的示例代码,可以发现显示的图像中是带有鱼眼效果的,也就是图像边缘不是直的,而是整个图凹进去的那种,这一点在一开始看彩色图的时候就发现了,似乎kinect v2的彩色图是有鱼眼效果的?
  • 打赏
  • 举报
回复 1
最终结论是,这就是正确结果,因为深度和彩色摄像头彼此位置不同所产生的视角差造成的
浅浅的交响 2016-11-03
  • 打赏
  • 举报
回复
请问楼主解决了吗?希望能给予一定指导。
哈哈1012 2016-06-04
  • 打赏
  • 举报
回复
同问同问

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧