2012-02-23 86 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); 
} 

如果這種方法不可行,您應該估計兩臺相機之間的轉換。諸如「計算機視覺中的多視圖幾何圖形」這樣的書描述了所有必要的背景和算法。