フル解像度のカラー画像から取得した座標を深度ストリームの座標に変換する方法を知りたいと思っていました。
たとえば、フル解像度の色から (763,234) を取得し、深度画像から (x、y、z) を知りたいですか? (ところで私はJavaでこれをやっていますが、C ++での答えはおそらく簡単に翻訳できます)
事前にThx
フル解像度のカラー画像から取得した座標を深度ストリームの座標に変換する方法を知りたいと思っていました。
たとえば、フル解像度の色から (763,234) を取得し、深度画像から (x、y、z) を知りたいですか? (ところで私はJavaでこれをやっていますが、C ++での答えはおそらく簡単に翻訳できます)
事前にThx
入力デバイスで許可されている場合は、次の C++ コードに示すように、単純に " GetAlternativeViewPointCap " を使用できます。この場合、デプス マップは自動的に変換され、カラー イメージに合わせられます。したがって、カラー画像上のピクセルの座標 (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);
}
このアプローチが実行できない場合は、2 つのカメラ間の変換を推定する必要があります。「Multiple View Geometry in Computer Vision」などの本には、必要な背景とアルゴリズムがすべて説明されています。