0

我正在使用 Eclipse 在 Android 上开发 AR 应用程序。我有一个虚拟对象必须在其上增加的标记的 4 个角坐标。我的问题是如何调用 OpenCV 校准函数来计算相机的外部参数,包括旋转矢量和平移矢量?如果您能快速回答我,我将不胜感激 :-) 我是 OpenCV 的新手。我找到了http://docs.opencv.org/java/org/opencv/calib3d/Calib3d.html但我不知道如何使用这些功能或我应该从哪里开始。

4

1 回答 1

1

如果我理解你,你在图像中有 4 个点并且你知道它们的世界坐标(你有 4 个 2D-3D 对应)来找到旋转矩阵和平移向量(称为相机位姿),你可以使用solvePnP函数.

此函数将 3D 坐标、2D 坐标、相机矩阵(焦距和投影中心)和畸变系数作为输入,这些都是您应该通过内在校准过程获得的。输出是旋转和平移向量。获得的旋转向量可以通过函数Rodrigues转换为旋转矩阵。

还有一个 solvePnP 版本,它使用 RANSAC 算法来丢弃异常值。

您可以在此处找到有关姿势估计的一些理论的文档。

编辑

获取相机内在参数称为相机校准,您可以在此OpenCV 文档中找到有关如何执行此操作的说明。这里还有一个带有源代码的旧教程。

于 2013-09-13T23:28:31.813 回答