使用EmguCV(OpenCV)解决共面点位姿估计问题

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解决这个问题吗?
2个回答

0

虽然Emgu中没有SolvePnP函数,但是只要你有至少4个点对应在同一平面上(你已经有了),你仍然可以计算出单应性矩阵。如果不确定如何操作,请参考CameraCalibration.FindHomography的文档。一旦你有了单应性矩阵,你就可以将其分解为旋转和平移,从而得到相机的姿态。请查看this article


0

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

升级并安装最新的NuGet包。

使用已知的内部参数和每个视图的外部参数估计外部相机参数。必须指定3D对象点的坐标及其对应的2D投影。此函数还最小化反向投影误差。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接