我使用Ogre + OpenCV编写了一个简单的增强现实应用程序。一切正常,但我需要将 Ogre 的虚拟相机与我的真实相机相匹配
我不知道相机参数(这是一个便宜的网络摄像头,供应商没有提供它们)。我可以使用cvCalibrateCamera2
(在此处cvFindChessboardCorners
描述的一些之后)获得相机内在属性,并使用.cvSave
cvCalibrateCamera2(objectPoints_, imagePoints_, pointCounts_,
imageSize, cameraMatrix, distortionCoeffs_, NULL,
NULL, CV_CALIB_FIX_ASPECT_RATIO );
cvSave(INTRINSIC_XML, intrinsicMatrix_);
AR 应用程序加载内在矩阵:
CvMat* intrinsic = (CvMat*) cvLoad(INTRINSIC_XML);
intrinsic->data.db
一个指向 9 长度的双精度数组(3x3 矩阵)的指针也是如此,我
如何将其转换为Ogre::Matrix4
可以与setCustomProjectionMatrix
.
我在Ogre 的论坛中找到了一些东西,但这不起作用。我猜在 OpenCV 找到的 3x3 矩阵和Ogre::Camera
.
我希望有一些方法可以使用cvCalibrateCamera2
. 如果没有,我需要拿一把尺子和一个量角器并(大致)手动获取参数。
这是 3x3 “内在”矩阵:
836.391 0.000 460.430
0.000 836.391 281.440
0.000 0.000 1.000