我想知道如何转换我从a获得的坐标 完整的彩色图像到深度流中的坐标。
例如,我从完整的颜色得到(763,234),我想知道什么 是深度图像的(x,y,z)? (顺便说一句,我在java中这样做,但c ++中的答案可能很容易 可翻译的)
提前谢谢
答案 0 :(得分:2)
如果您的输入设备允许,您只需使用“ GetAlternativeViewPointCap ”,如以下C ++代码所示。在这种情况下,深度图被自动变换以便与彩色图像对齐。因此,给定彩色图像上像素的坐标(x,y),在相同位置查询深度图就足够了。
m_context.InitFromXmlFile(path,m_scriptNode);
m_context.FindExistingNode(XN_NODE_TYPE_IMAGE, m_imageGenerator);
m_context.FindExistingNode(XN_NODE_TYPE_DEPTH, m_depthGenerator);
if (m_depthGenerator.IsCapabilitySupported(XN_CAPABILITY_ALTERNATIVE_VIEW_POINT)) {
m_depthGenerator.GetAlternativeViewPointCap().SetViewPoint(m_imageGenerator);
}
如果这种方法不可行,您应该估计两台摄像机之间的转换。诸如“计算机视觉中的多视图几何”之类的书描述了所有必要的背景和算法。