OpenCV相机内在矩阵到用于增强现实的食人魔投影矩阵
OpenCV camera intrinsics matrix to Ogre projection matrix for Augmented reality
我用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
一起使用.
我在食人魔论坛中找到了一些东西,但这不起作用。我想在 OpenCV 找到的 3x3 矩阵和 Ogre::Camera
需要的 4x4 矩阵之间还需要其他一些步骤。
我希望有一些方法可以用cvCalibrateCamera2
给出的内在来做到这一点。如果没有,我需要拿一把尺子和一个量角器,(大致)手动获取参数。
这是 3x3 "内部函数"矩阵:
836.391 0.000 460.430
0.000 836.391 281.440
0.000 0.000 1.000
按如下方式创建投影矩阵。
垫[0,0] = FX
垫[1,1] = fy
垫子[2,2] = +- .01
垫[3,2] = +- 1
垫[3,3] = 0
哪里fx = 内在 [0]/图像大小.宽度;
fy = 内在 [1*3 + 1]/图像大小.高度;
尝试将 mat[2,2] 和 mat[3,2] 的负值和正值组合。
通常两者都有负值。其他参数可以忽略
相关文章:
- 食人魔异常(6:文件未找到异常):找不到'ogre.cfg'文件
- 食人魔相机方向给定矢量和角度
- 食人魔:模拟透视视图缩放对象
- 食人魔3d /合成器相关问题
- 只对右值参考的一些资源进行食人
- 三个.js的食人魔出口商
- 增强现实-PC
- 食人魔投影仪透过物体发光
- OpenCV相机内在矩阵到用于增强现实的食人魔投影矩阵
- 为安卓 ndk10 构建食人魔
- 食人魔点场景保存
- 使用TDD进行食人魔游戏编程
- C++食人魔,无法编译和运行
- 如何在用于增强现实的OpenCV上使用相机校准参数
- 增强现实人脸检测c++
- 食人魔错误LNK2001:无法解析的外部符号
- 在食人魔中访问视口像素值
- C++可能的线程问题 - 可能是食人魔的错
- 麻烦编译食人魔教程示例
- 编译食人魔代码时出错