我试图在没有 kinect 的情况下将深度帧映射到颜色帧。
我之前使用 Kinect 获取图像,现在,基于深度图像,我可以清楚地看到人的 body 形状,我想匹配颜色和深度图像,而不使用 kinect 方法 MapDephtFrametoColorFrame(我不能应用这个不使用 Kinect 的方法)。
这该怎么做?
我想获取深度为 255(阈值)的点,然后将 [x,y] 点与颜色匹配,但我没有任何结果。
提前致谢
最佳答案
我之前找到了一篇文章指出如何做到这一点( here's the link )
这是该网站的伪代码(所有参数也都在网站上):
P3D.x = (x_d - cx_d) * depth(x_d,y_d) / fx_d
P3D.y = (y_d - cy_d) * depth(x_d,y_d) / fy_d
P3D.z = depth(x_d,y_d)
P3D' = R.P3D + T
P2D_rgb.x = (P3D'.x * fx_rgb / P3D'.z) + cx_rgb
P2D_rgb.y = (P3D'.y * fy_rgb / P3D'.z) + cy_rgb
就像你一样,我一直在尝试将深度映射到 rgb 数据,但是在使用此算法后,我仍然遇到一些未对齐的问题,其中颜色映射似乎向其他方向移动了一点,这因图像而异在我的数据集中。
希望至少这些可以帮助您朝着正确的方向前进。
关于c# - 如何在没有 Kinect 的情况下将深度帧映射到颜色帧,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16900403/