2012-02-23 3 views
1

Мне было интересно, как я могу преобразовать координату, полученную мною из полного изображения с разрешением , в координаты в потоке глубины.OpeNni: Координаты цвета с координатами глубины

Например, я получил (763,234) от полного цвета res, и я хочу знать, что - это (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); 
} 

Если этот подход не является жизнеспособным, вы должны оценить трансформацию между двумя камерами. В книге, такой как «Многомерная геометрия зрения в компьютерном видении», описываются все необходимые фон и алгоритмы.