该接口对应一个小孔相机标定模型。 更多...
Public 成员函数 | |
| LPVErrorCode | AddMVPoints (ILCalibPointPairs *pointPairs) |
| void | SetCameraProps (double cellSize, double focusLength, double viewDistance) |
Public 成员函数 继承自 ILCalib | |
| LPVErrorCode | AddPoint (double imagePointX, double imagePointY, double worldPointX, double worldPointY) |
| LPVErrorCode | AddPoints (ILCalibPointPairs *pointPairs) |
| LPVErrorCode | Calibrate () |
| LPVErrorCode | FixImage (ILImage *image, ILImage *fixedImage) |
| LPVErrorCode | GenPostTransformMatrix (ILCalibPointPairs *pointPairs) |
| void | ImageToWorld (double imagePointX, double imagePointY, double *worldPointX, double *worldPointY) |
| BOOL | IsCalibrated () |
| void | SetImageSize (int w, int h) |
| void | SetPostTransform (double offsetX, double offsetY, double deltaAngle) |
| void | SetPostTransformMatrix (ILTransform *tf) |
| void | SetPostTransformMatrix23 (LMatrix23 *data) |
| void | SetPostTransformMatrix33 (LMatrix33 *data) |
| void | WorldToImage (double worldPointX, double worldPointY, double *imagePointX, double *imagePointY) |
Public 成员函数 继承自 ILObject | |
| ILObject * | Copy () |
| LPVErrorCode | Load (LString filename) |
| void | Reset () |
| LPVErrorCode | Save (LString filename) |
| BOOL | Valid () |
属性 | |
| LPVDistortionModel | DistortionModel [get, set] |
| 镜头畸变模型 | |
属性 继承自 ILCalib | |
| double | CalibError [get] |
| 标定结果的反投影误差, 基于图像坐标与其对应的物理坐标根据标定结果反投影回图像坐标系的坐标之间的差,按该公式定义: \( \sqrt{ \frac{1}{n} \sum_{i=0}^{n} distance(p^{image}_i, p^{proj}_i)^2 } \) | |
| LPVFixImageMode | FixImageMode [get, set] |
| 用于 FixImage() 指定图像修正的模式。 更多... | |
| double | FixImageOffsetX [get, set] |
| 修正图像 FixImage() 时使用的 x 方向偏移量,以像素为单位,与 FixImageOffsetY 同时使用。 默认设置为 0,即无 x 方向偏移。修改该数值可移动修正图像中有效像素的位置,如将检测区域移动到修正图像的中心附近。 | |
| double | FixImageOffsetY [get, set] |
| 修正图像 FixImage() 时使用的 y 方向偏移量,以像素为单位,与 FixImageOffsetY 同时使用。 默认设置为 0,即无 y 方向偏移。修改该数值可移动修正图像中有效像素的位置,如将检测区域移动到修正图像的中心附近。 | |
| double | FixImageScale [get, set] |
| 修正图像 FixImage() 时使用的缩放比例。 默认设置为 1,即无缩放。修改该数值可放大或缩小修正后的图像。 | |
| LPVInterpolationMethod | InterpolationMethod [get, set] |
| 修正图像时所使用的插值算法,默认配置为 LPVInterCubic | |
| LPVCalibModel | Model [get] |
| 相机标定模型 | |
| BOOL | UseCache [get, set] |
| 是否开启缓存,缓存数据用于加速图像矫正过程,但占用更多的内存。这个配置默认关闭。 | |
属性 继承自 ILObject | |
| LString | Name [get, set] |
| 对象的名称,默认为空。 大多数情况下,LPV 算法类并不使用这个名称。 若 ILDrawable::SetDrawName() 启用,该名称将被绘制在对象的附近 更多... | |
该接口对应一个小孔相机标定模型。
在小孔相机标定模型中,场景视图建模为将 3D 点以射影变换的方式投影到成像平面,即:
\[ s \; m' = K \; [R | t] \; M \]
其中 \( m' \) 为以像素为单位的图像点, \( M \) 为物理单位的物理点, \( K \) 为相机的内参,包括相机的主点(畸变中心)和以像素为单位的焦距, \( [R | t] \) 为相机的外参,描述相机相对与观察平面的位置,包括旋转、平移等, \( s \) 为整个系统的缩放系数。
该模型支持径向的镜头畸变估计,查看 DistortionModel.
标定精度通常受到以下几个方面的影响:
使用这个接口,需要创建一个 LCalibPinHole 对象。
| LPVErrorCode AddMVPoints | ( | ILCalibPointPairs * | pointPairs | ) |
增加一个用于多视角标定的点对集合。
| [in] | pointPairs | 用于标定的点对集合 |
| error | 返回错误码 |
| void SetCameraProps | ( | double | cellSize, |
| double | focusLength, | ||
| double | viewDistance | ||
| ) |
设置相机和场景视的一些属性,用于构建标定优化过程中使用的初始参数,帮助优化结果更符合真实情况。
| [in] | cellSize | 像元尺寸(μm),可以在相机或镜头厂商提供的详细参数表中找到。通常情况下,x 和 y 方向使用相同的像元尺寸。 |
| [in] | focusLength | 焦距(mm),可以在相机或镜头厂商提供的详细参数表中找到。 |
| [in] | viewDistance | 工作距(mm),相机到观察平面的大致距离。 |