Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解opencv函数输出_Opencv_Computer Vision - Fatal编程技术网

理解opencv函数输出

理解opencv函数输出,opencv,computer-vision,Opencv,Computer Vision,我有一个双摄像头设置,并试图使AR的东西上。经过立体校准和校正后,左右图像效果良好,极线对齐良好 我用一幅图像检测AR标记,并希望用适当的相机偏移在另一幅图像上进行渲染 立体校准给出了两个摄像机之间的关系,如: R: !!opencv-matrix rows: 3 cols: 3 dt: d data: [ 9.9922768917754268e-001, 2.4924911359451081e-002, 3.0377194976358678e-002, -

我有一个双摄像头设置,并试图使AR的东西上。经过立体校准和校正后,左右图像效果良好,极线对齐良好

我用一幅图像检测AR标记,并希望用适当的相机偏移在另一幅图像上进行渲染

立体校准给出了两个摄像机之间的关系,如:

R: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [ 9.9922768917754268e-001, 2.4924911359451081e-002,
       3.0377194976358678e-002, -2.4063699016973375e-002,
       9.9930712233274999e-001, -2.8393901539922377e-002,
       -3.1063862775397383e-002, 2.7640984945580323e-002,
       9.9913513219219230e-001 ]
T: !!opencv-matrix
   rows: 3
   cols: 1
   dt: d
   data: [ -5.5054479009004126e+001, -7.1894766441986058e-001,
       -2.8661303301073544e+000 ]
我该如何理解这一点?特别是平移向量[-55.05,-0.718,-2.866]?这是像素单位吗

在渲染部分,我使用Ogre制作了一个定制的投影矩阵(从相机校准矩阵中获得)。我用向量[x,y,z]生成一个平移矩阵,并将其乘以定制的投影矩阵。这些数据以什么单位关联?我的代码快照的工作原理如下:

double pMatrix[16];
    camParams.OgreGetProjectionMatrix(camParams.CamSize,camParams.CamSize, pMatrix, 0.05,50, false);
    Ogre::Matrix4 PM(pMatrix[0], pMatrix[1], pMatrix[2] , pMatrix[3],
            pMatrix[4], pMatrix[5], pMatrix[6] , pMatrix[7],
            pMatrix[8], pMatrix[9], pMatrix[10], pMatrix[11],
            pMatrix[12], pMatrix[13], pMatrix[14], pMatrix[15]);    

.....

//translate the camera a little for the right display
    Ogre::Matrix4 matrix_translate;
    matrix_translate.makeTrans(Ogre::Vector3(-0.3,0.0,0.0));
    Ogre::Matrix3 matrix_rotate;

    camera_right->setCustomProjectionMatrix(true, matrix_translate*PM);
    camera_right->setCustomViewMatrix(true, Ogre::Matrix4::IDENTITY);   

校准相机系统时,必须输入栅格图案的大小(单位),并且平移向量共享相同的单位


我不太熟悉食人魔,但我认为在你的食人魔场景中一定有一个全局坐标系,这个坐标系必须有一个指定的单位

校准相机系统时,必须输入网格图案的大小(单位),并且平移向量共享相同的单位


我不太熟悉食人魔,但我认为在你的食人魔场景中一定有一个全局坐标系,这个坐标系必须有一个指定的单位

感谢您的洞察力,我检查了我的相机,平移向量与我的校准网格模式共享同一单位。在AR渲染中,通常使用AR标记作为世界坐标,并使用solvePnp()查找相机坐标的旋转和平移向量。虽然我不太确定食人魔是否使用camrea坐标系作为全局坐标系,但我使用这些比率来移动相机。看起来不错。谢谢!谢谢你的洞察力,我检查了我的相机,平移向量与我的校准网格模式共享同一单位。在AR渲染中,通常使用AR标记作为世界坐标,并使用solvePnp()查找相机坐标的旋转和平移向量。虽然我不太确定食人魔是否使用camrea坐标系作为全局坐标系,但我使用这些比率来移动相机。看起来不错。谢谢