gpt4 book ai didi

opencv - 了解opencv立体声校准函数输出

转载 作者:行者123 更新时间:2023-12-02 16:49:42 25 4
gpt4 key购买 nike

我设置了双摄像头,试图在其上制作AR物品。经过立体校准和校正后,左右图像效果很好,极线对齐良好。

我用一个图像检测到AR标记,并希望通过适当的相机移位将其标记在另一图像上。

stereoCalibration给出了两个摄像机之间的关系,例如:

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并制作了一个自定义的投影矩阵(从相机校准矩阵获得)。我用vector [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);

最佳答案

校准摄像机系统时,必须输入网格单位的大小(单位),平移 vector 共享相同的单位。

我不太熟悉Ogre,但是我认为您的Ogre场景中必须有一个全局坐标系,并且该坐标系必须具有指定的单位。

关于opencv - 了解opencv立体声校准函数输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31312451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com