OpeNni: координаты цвета в координатах глубины - PullRequest
1 голос
/ 23 февраля 2012

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

Например, я получил (763,234) из цвета с полным разрешением, и я хочузнаете, что такое (x, y, z) из глубины изображения?(кстати, я делаю это в Java, но ответ на C ++, вероятно, легко переводим)

Спасибо заранее

1 Ответ

2 голосов
/ 01 марта 2012

Если ваше устройство ввода позволяет это сделать, вы можете просто использовать « 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);
}

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

...