该接口提供旋转中心标定和对位的功能。 更多...
Public 成员函数 | |
| void | AddRotPoint (double pntX, double pntY, double angle) |
| void | AddRotPointPair (double pntX1, double pntY1, double pntX2, double pntY2, double angle) |
| void | Align (double pntX1, double pntY1, double pntX2, double pntY2, double *dx, double *dy, double *da) |
| void | AlignTo (double pntX1, double pntY1, double pntX2, double pntY2, double aimPointX1, double aimPointY1, double aimPointX2, double aimPointY2, double *dx, double *dy, double *da) |
| LPVErrorCode | Calibrate () |
| ILPoint * | GetRotCenter () |
| BOOL | IsCalibrated () |
| void | SetAim (double aimPointX1, double aimPointY1, double aimPointX2, double aimPointY2) |
| void | Transform (double pntX, double pntY, double dx, double dy, double da, double *newX, double *newY) |
Public 成员函数 继承自 ILObject | |
| ILObject * | Copy () |
| LPVErrorCode | Load (LString filename) |
| void | Reset () |
| LPVErrorCode | Save (LString filename) |
| BOOL | Valid () |
属性 | |
| BOOL | TranslationOnRotation [get, set] |
| 平移平台是否基于旋转平台移动,默认配置为否。 若是,旋转将改变平移的坐标系,即改变目标在物理场景中的平移方向 | |
属性 继承自 ILObject | |
| LString | Name [get, set] |
| 对象的名称,默认为空。 大多数情况下,LPV 算法类并不使用这个名称。 若 ILDrawable::SetDrawName() 启用,该名称将被绘制在对象的附近 更多... | |
该接口提供旋转中心标定和对位的功能。
旋转中心标定通常用于带有旋转平台的机器视觉系统,广泛应用于引导、抓取、对位等视觉任务。
基于围绕着该中心点旋转的一个或多个目标点的轨迹,优化得到其旋转中心。 旋转中心标定通常在手眼标定(使用多点变换标定模型)后进行。 因此,输入的点位置为其物理坐标位置。
标定后,可基于旋转中心,对齐目标点与对象点,计算将对象点齐平目标点所需的平移量和旋转角度。
使用这个接口,需要创建一个 LCalibRotation 对象。
| void AddRotPoint | ( | double | pntX, |
| double | pntY, | ||
| double | angle | ||
| ) |
增加一个用于旋转标定的旋转轨迹中的一个点位。旋转轨迹为一个对象点围绕旋转中心生成的圆形或弧形路径。
| [in] | pntX | 点位的 x 坐标 |
| [in] | pntY | 点位的 y 坐标 |
| [in] | angle | 当时的旋转平台的旋转角度,可传入 -1(默认)表示忽略角度。 |
| void AddRotPointPair | ( | double | pntX1, |
| double | pntY1, | ||
| double | pntX2, | ||
| double | pntY2, | ||
| double | angle | ||
| ) |
增加一对用于旋转标定的旋转轨迹中的两个点位。这一对旋转轨迹为两个对象点围绕旋转中心生成的两个同心圆形或弧形路径。
| [in] | pntX1 | 第一个点位的 x 坐标 |
| [in] | pntY1 | 第一个点位的 y 坐标 |
| [in] | pntX2 | 第二个点位的 x 坐标 |
| [in] | pntY2 | 第二个点位的 y 坐标 |
| [in] | angle | 当时的旋转平台的旋转角度,可传入 -1(默认)表示忽略角度。 |
| void Align | ( | double | pntX1, |
| double | pntY1, | ||
| double | pntX2, | ||
| double | pntY2, | ||
| double * | dx, | ||
| double * | dy, | ||
| double * | da | ||
| ) |
| void AlignTo | ( | double | pntX1, |
| double | pntY1, | ||
| double | pntX2, | ||
| double | pntY2, | ||
| double | aimPointX1, | ||
| double | aimPointY1, | ||
| double | aimPointX2, | ||
| double | aimPointY2, | ||
| double * | dx, | ||
| double * | dy, | ||
| double * | da | ||
| ) |
对齐对象位置到输入的目标位置,返回对齐所需的平移量和旋转角度。 标定对象需成功标定,若未标定则返回值均为 0
| [in] | aimPointX1 | 目标位置的第一个标记点的 x 坐标 |
| [in] | aimPointY1 | 目标位置的第一个标记点的 y 坐标 |
| [in] | aimPointX2 | 目标位置的第二个标记点的 x 坐标 |
| [in] | aimPointY2 | 目标位置的第二个标记点的 y 坐标 |
| [in] | pntX1 | 对象位置的第一个标记点的 x 坐标 |
| [in] | pntY1 | 对象位置的第一个标记点的 y 坐标 |
| [in] | pntX2 | 对象位置的第二个标记点的 x 坐标 |
| [in] | pntY2 | 对象位置的第二个标记点的 y 坐标 |
| [out] | dx | 返回对齐所需的 x 方向的平移量 |
| [out] | dy | 返回对齐所需的 y 方向的平移量 |
| [out] | da | 返回对齐所需的旋转角度 |
| LPVErrorCode Calibrate | ( | ) |
进行标定,使用当前配置的参数和添加的旋转轨迹
| error | 返回错误码 |
| ILPoint* GetRotCenter | ( | ) |
获取旋转中心的坐标点。
| BOOL IsCalibrated | ( | ) |
检查是否标定成功
| val | 若标定成功,返回 True,否则,返回 False |
| void SetAim | ( | double | aimPointX1, |
| double | aimPointY1, | ||
| double | aimPointX2, | ||
| double | aimPointY2 | ||
| ) |
| void Transform | ( | double | pntX, |
| double | pntY, | ||
| double | dx, | ||
| double | dy, | ||
| double | da, | ||
| double * | newX, | ||
| double * | newY | ||
| ) |
移动和旋转给定点位,按照输入的平移量和旋转角度。
| [in] | pntX | 点位的 x 坐标 |
| [in] | pntY | 点位的 y 坐标 |
| [in] | dx | x 方向的平移量 |
| [in] | dy | y 方向的平移量 |
| [in] | da | 旋转角度 |
| [out] | newX | 返回移动旋转后的点位的 x 坐标 |
| [out] | newY | 返回移动旋转后的点位的 y 坐标 |