4

我在相机中检测到同一平面上的 4 个点(一个扁平的方形物体),我正在尝试计算这个正方形相对于相机的姿势。

我正在使用最新版本的 EmguCV ( http://www.emgu.com/wiki/index.php/Main_Page ),它是 OpenCV 的 C# 包装器。

我见过 POSIT(http://opencv.willowgarage.com/wiki/Posit),但这不适用于共面点。我想知道是否有任何东西可以解决 OpenCV 中的共面姿态估计。

我还看到了solvePnp http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html#cv-solvepnp ,我相信它会做我想做的,但我似乎无法在EmguCV中找到这个功能。

有谁知道如何使用 EmguCV 解决这个问题?

4

2 回答 2

0

尽管 SolvePnP 在 emgu 中不可用,但一旦在平面上至少有 4 个点对应(你有),你仍然可以计算单应性。如果您不确定,请参阅 CameraCalibration.FindHomography 的文档。一旦有了单应性,就可以将其分解为旋转和平移,从而得到相机姿势。看看这篇文章

于 2013-06-01T07:18:31.380 回答
0

Emgu.CV::CameraCalibration.SolvePnP(Emgu.CV.Structure.MCvPoint3D32f[], System.Drawing.PointF[], Emgu.CV.IntrinsicCameraParameters, Emgu.CV.CvEnum.SolvePnpMethod)

升级并安装最新的 NuGet 包。

使用每个视图的已知内部参数和外部参数估计外部相机参数。必须指定 3D 对象点的坐标及其对应的 2D 投影。此功能还可以最大限度地减少反投影误差。

于 2015-06-25T17:42:22.847 回答