该接口提供标定板相关的功能。 更多...
Public 成员函数 | |
| LPVErrorCode | Detect (ILImage *img, ILCalibPointPairs **pointPairs) |
| LPVErrorCode | DetectInRegion (ILImage *img, ILRegion *region, ILCalibPointPairs **pointPairs) |
| double | Evaluate (ILCalibPointPairs *pointPairs, LPVCalibOutlierRemovalPolicy policy) |
| LPVErrorCode | GeneratePointPairs (ILPoints *imgPoints, ILCalibPointPairs **pointPairs) |
Public 成员函数 继承自 ILObject | |
| ILObject * | Copy () |
| LPVErrorCode | Load (LString filename) |
| void | Reset () |
| LPVErrorCode | Save (LString filename) |
| BOOL | Valid () |
属性 | |
| double | BoardThickness [get, set] |
| 标定板厚度,与 SquareSize 相同单位。 用于帮助补偿标定平面和检测平面之间的不同面带来的坐标映射误差,仅在小孔相机模型 中使用。 | |
| LPVCalibBoardType | CalibBoardType [get, set] |
| 标定板的类型 | |
| int | GridHeight [get, set] |
| 标定板网格的纵向尺寸,至少为 3。 对于分散式二维码棋盘格标定板,无需设置该尺寸,该信息隐含在标定板图案内,可由算法自行检测。 | |
| int | GridWidth [get, set] |
| 标定板网格的横向尺寸,至少为 3。 对于分散式二维码棋盘格标定板,无需设置该尺寸,该信息隐含在标定板图案内,可由算法自行检测。 | |
| BOOL | GuessPartialBlock [get, set] |
| 是否启用对非完整块中的标定点的猜测和检测,对分散式二维码棋盘格标定板起效。 开启猜测可能获得更多标定点结果,但这些猜测的点可能精度稍低。默认开启。 | |
| BOOL | InvertBlock [get, set] |
| 是否翻转标定块,对分散式二维码棋盘格标定板起效。若相机采图配置为上下或左右镜像,则开启该配置以帮助算法获取正确的坐标系方向。默认关闭。 | |
| double | MarkerSize [get, set] |
| 分散式二维码棋盘格标定板使用的标记点尺寸,与 SquareSize 相同单位。 默认设置为 0,表示其尺寸固定为网格间距的 80。 | |
| LPVCalibOutlierRemovalPolicy | OutlierPolicy [get, set] |
| 用于坏点剔除和评价的策略。默认设置为 LPVCalibOutlierRemovalNone ,即不启用坏点剔除。 | |
| double | OutlierSigma [get, set] |
| 用于生成确定坏点的相对阈值,即图像点和其反投影位置(或拟合位置,由 OutlierPolicy 确定)之间的距离均值,再加上 OutlierSigma x 标准差。 距离大于该固定阈值的点对将被视为坏点,并剔除。 默认设置为 0,表示跳过基于相对阈值的坏点剔除。 | |
| double | OutlierThreshold [get, set] |
| 固定距离阈值,以像素为单位,用于过滤图像点和其反投影位置(或拟合位置,由 OutlierPolicy 确定)之间的距离。 距离大于该固定阈值的点对将被视为坏点,并剔除。 默认设置为 0.1 像素。设置为 0 或负数,以跳过基于固定阈值的坏点剔除。 | |
| double | SquareSize [get, set] |
| 标定板的网格间距。 对于棋盘格和分散式二维码棋盘格标定板,其指的是一个黑色方块的物理尺寸。 对于圆点阵标定板,其指的是相邻两个圆点中心的物理距离。 | |
| BOOL | StartFromCetner [get, set] |
| 是否将网格的中心点作为标定板起始点。默认不开启,即网格的左上角点作为起始点。 | |
| double | StartX [get, set] |
| 指定标定板起始点的 x 物理坐标。起始点通常为图像中标定点的最左上点或中心点(若启用 StartFromCetner )。 对于带有坐标系的圆点标定板,为该坐标系的原点。 对分散式二维码棋盘格标定板,因其带有完整的坐标信息,指定该起始坐标无效 | |
| double | StartY [get, set] |
| 指定标定板起始点的 y 物理坐标。起始点通常为图像中标定点的最左上点或中心点(若启用 StartFromCetner )。 | |
| double | StepX [get, set] |
| 生成输出物理坐标时的横向移动步长,即起始点与其图像上的右侧点的场景间距。生成步长在 SwapXY 之前应用。 若 X 轴朝右,该步长数值为正;若 X 轴朝左,该步长数值为负。若该步长数值为 0,则使用 SquareSize 作为步长。 | |
| double | StepY [get, set] |
| 生成输出物理坐标时的纵向移动步长,即起始点与其图像上的下方点(下一行)的场景间距。生成步长在 SwapXY 之前应用。 若 Y 轴朝下,该步长数值为正;若 Y 轴朝上,该步长数值为负。若该步长数值为 0,则使用 SquareSize 作为步长。 | |
| BOOL | SwapXY [get, set] |
| 是否交换输出物理点的 x/y 坐标 | |
| BOOL | UseFittingMethod [get, set] |
| 是否使用拟合方法优化标定板定位点的亚像素位置。默认设置为关闭。 当开启时,棋盘格和二维码棋盘格标定板使用直线拟合方法优化棋盘格角点,圆点阵和 EM 圆点阵标定板使用椭圆拟合方法优化圆点中心。 | |
属性 继承自 ILObject | |
| LString | Name [get, set] |
| 对象的名称,默认为空。 大多数情况下,LPV 算法类并不使用这个名称。 若 ILDrawable::SetDrawName() 启用,该名称将被绘制在对象的附近 更多... | |
该接口提供标定板相关的功能。
标定板为预知规格和图案的平面,用于拍摄后检测和生成用于标定的图像和物理点对。
目前支持以下 4 种类型的标定板:
经典的棋盘格标定板和圆点阵标定板
分散式二维码棋盘格标定板,用于高精度标定场景,且使用更便捷,尤其对于相机阵列或多相机联合标定,可大幅度提高标定效率。
EM 圆点阵标定板,专为手眼标定设计。整体图案十分简单,便于激光打印。空标记用于指定坐标轴的朝向和原点位置:
使用这个接口,需要创建一个 LCalibBoard 对象。
| LPVErrorCode Detect | ( | ILImage * | img, |
| ILCalibPointPairs ** | pointPairs | ||
| ) |
在输入的图像中检测标定板,返回生成的图像和物理点对。
| [in] | img | 输入的图像 |
| [out] | pointPairs | 返回生成的图像和物理点对集合 |
| error | 返回错误码 |
| LPVErrorCode DetectInRegion | ( | ILImage * | img, |
| ILRegion * | region, | ||
| ILCalibPointPairs ** | pointPairs | ||
| ) |
在输入图像的指定区域中检测标定板,返回生成的图像和物理点对。
| [in] | img | 输入的图像 |
| [in] | region | 输入的区域,用于限定检测区域 |
| [out] | pointPairs | 返回生成的图像和物理点对集合 |
| error | 返回错误码 |
| double Evaluate | ( | ILCalibPointPairs * | pointPairs, |
| LPVCalibOutlierRemovalPolicy | policy | ||
| ) |
评价输入点对质量
| [in] | pointPairs | 输入的图像和物理点对集合 |
| [in] | policy | 坏点评价标准 |
| error | 返回坏点评价值 |
| LPVErrorCode GeneratePointPairs | ( | ILPoints * | imgPoints, |
| ILCalibPointPairs ** | pointPairs | ||
| ) |
基于输入的图像坐标点集,生成点对。
输入的图像坐标点集将被按行从上到下、行内从左到右排序,其对应的物理坐标由当前的标定板设置从左上角开始自动生成。 除了 EM 圆点阵标定板,其起始点和坐标轴朝向由图像坐标点的分布情况决定。
| [in] | imgPoints | 输入的图像坐标点集,通常通过其他定位工具获得 |
| [out] | pointPairs | 返回生成的图像和物理点对集合 |
| error | 返回错误码 |