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

该接口提供旋转中心标定和对位的功能。 更多...

类 ILCalibRotation 继承关系图:
ILObject LCalibRotation

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 ()
 
ILPointGetRotCenter ()
 
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
ILObjectCopy ()
 
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 对象。

示例代码

成员函数说明

◆ AddRotPoint()

void AddRotPoint ( double  pntX,
double  pntY,
double  angle 
)

增加一个用于旋转标定的旋转轨迹中的一个点位。旋转轨迹为一个对象点围绕旋转中心生成的圆形或弧形路径。

参数
[in]pntX点位的 x 坐标
[in]pntY点位的 y 坐标
[in]angle当时的旋转平台的旋转角度,可传入 -1(默认)表示忽略角度。

◆ AddRotPointPair()

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(默认)表示忽略角度。

◆ Align()

void Align ( double  pntX1,
double  pntY1,
double  pntX2,
double  pntY2,
double *  dx,
double *  dy,
double *  da 
)

对齐对象位置到已配置的目标位置,返回对齐所需的平移量和旋转角度。 标定对象需成功标定,若未标定则返回值均为 0

参数
[in]pntX1对象位置的第一个标记点的 x 坐标
[in]pntY1对象位置的第一个标记点的 y 坐标
[in]pntX2对象位置的第二个标记点的 x 坐标
[in]pntY2对象位置的第二个标记点的 y 坐标
[out]dx返回对齐所需的 x 方向的平移量
[out]dy返回对齐所需的 y 方向的平移量
[out]da返回对齐所需的旋转角度
参见
SetAim(), AlignTo().

◆ AlignTo()

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返回对齐所需的旋转角度
参见
Align(), SetAim().

◆ Calibrate()

LPVErrorCode Calibrate ( )

进行标定,使用当前配置的参数和添加的旋转轨迹

返回值
error返回错误码

◆ GetRotCenter()

ILPoint* GetRotCenter ( )

获取旋转中心的坐标点。

◆ IsCalibrated()

BOOL IsCalibrated ( )

检查是否标定成功

返回值
val若标定成功,返回 True,否则,返回 False

◆ SetAim()

void SetAim ( double  aimPointX1,
double  aimPointY1,
double  aimPointX2,
double  aimPointY2 
)

设置对位目标的位置。

参数
[in]aimPointX1目标位置的第一个标记点的 x 坐标
[in]aimPointY1目标位置的第一个标记点的 y 坐标
[in]aimPointX2目标位置的第二个标记点的 x 坐标
[in]aimPointY2目标位置的第二个标记点的 y 坐标
参见
Align(), AlignTo().

◆ Transform()

void Transform ( double  pntX,
double  pntY,
double  dx,
double  dy,
double  da,
double *  newX,
double *  newY 
)

移动和旋转给定点位,按照输入的平移量和旋转角度。

参数
[in]pntX点位的 x 坐标
[in]pntY点位的 y 坐标
[in]dxx 方向的平移量
[in]dyy 方向的平移量
[in]da旋转角度
[out]newX返回移动旋转后的点位的 x 坐标
[out]newY返回移动旋转后的点位的 y 坐标