Leaper Vision Toolkit
中文 / English 2.x
Public 成员函数 | 属性
ILCalibPinHole接口 参考

该接口对应一个小孔相机标定模型。 更多...

类 ILCalibPinHole 继承关系图:
ILCalib ILObject LCalibNPoints LCalibPinHole

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
ILObjectCopy ()
 
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.

标定精度通常受到以下几个方面的影响:

  1. 用于标定的点对数量及其分布。通常越密集且在整个图像范围内分布越广的点对,会带来更好的标定精度。
  2. 与真实情况相符合的镜头畸变模型。
  3. 使用多视角的标定点对,可以帮助估计更精确的相机内参,从而计算出更精确的相机外参。而且,采用多视角的标定点对,可以帮助标定系统消除标定板厚度对坐标映射精度的影响。

使用这个接口,需要创建一个 LCalibPinHole 对象。

示例代码

成员函数说明

◆ AddMVPoints()

LPVErrorCode AddMVPoints ( ILCalibPointPairs pointPairs)

增加一个用于多视角标定的点对集合。

参数
[in]pointPairs用于标定的点对集合
返回值
error返回错误码

◆ SetCameraProps()

void SetCameraProps ( double  cellSize,
double  focusLength,
double  viewDistance 
)

设置相机和场景视的一些属性,用于构建标定优化过程中使用的初始参数,帮助优化结果更符合真实情况。

参数
[in]cellSize像元尺寸(μm),可以在相机或镜头厂商提供的详细参数表中找到。通常情况下,x 和 y 方向使用相同的像元尺寸。
[in]focusLength焦距(mm),可以在相机或镜头厂商提供的详细参数表中找到。
[in]viewDistance工作距(mm),相机到观察平面的大致距离。