Ogre + OpenCVを使用して単純な拡張現実アプリケーションを作成しました。すべてが機能していますが、Ogre の仮想カメラを実際のカメラに一致させる必要があります
カメラのパラメーターがわかりません (これは安価な Web カメラであり、ベンダーはそれらを提供していません)。私は(ここで説明されているcvCalibrateCamera2いくつかの後)でカメラ固有のものを取得することができ、それらをで保存します。cvFindChessboardCornerscvSave
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 の double (3x3 行列) の配列への
ポインターOgre::Matrix4ですsetCustomProjectionMatrix。
Ogre's Forumで何かを見つけましたが、これは機能していません。OpenCV で見つかった 3x3 マトリックスと で必要な 4x4 マトリックスの間には、別の手順が必要だと思いますOgre::Camera。
によって与えられた組み込み関数でこれを行う方法があることを願っていcvCalibrateCamera2ます。何もない場合は、定規と分度器を使用して、手動で (大まかに) パラメータを取得する必要があります。
これは 3x3 の「組み込み関数」行列です。
836.391     0.000   460.430 
  0.000   836.391   281.440
  0.000     0.000     1.000