2012-02-23 147 views
1

我想知道如何将我从 全色res图像获取的坐标转换为深度流中的坐标。OpeNni:颜色坐标到深度坐标

例如,我从完整的资源颜色得到(763,234),我想知道什么 是来自深度图像的(x,y,z)? (顺便说一句我我在Java中这样做,但在C++的答案很可能是容易 翻译)

THX提前

回答

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); 
} 

如果这种方法不可行,您应该估计两台相机之间的转换。诸如“计算机视觉中的多视图几何图形”这样的书描述了所有必要的背景和算法。