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

该接口提供亚像素十字标记定位的功能。 更多...

类 ILCrossMarkDetector 继承关系图:
ILObject LCrossMarkDetector

Public 成员函数

LPVErrorCode Detect (ILImage *img, ILRegion *region, ILCrossMarkResults **results)
 
void SetMarkRange (int grayLB, int grayUB)
 
void SetSizeRange (int lb, int ub)
 
- Public 成员函数 继承自 ILObject
ILObjectCopy ()
 
LPVErrorCode Load (LString filename)
 
void Reset ()
 
LPVErrorCode Save (LString filename)
 
BOOL Valid ()
 

属性

double FitDistThreshold [get, set]
 拟合距离阈值用于交叉线的拟合过程,作为拟合结果和有效拟合点的最大可接受距离。 超过该距离阈值的点将被作为异常点剔除且不再参与拟合。 默认设置为 0,即在检测过程中,自动确定合适的阈值,根据十字标记的尺寸和宽度。
 
int KernelSize [get, set]
 边缘滤波时滤波核的尺寸,在检测边缘时使用,需要是一个 3 ~ 31 之间的奇数,如 3, 5, 7 等。
 
int MarkRangeLB [get]
 十字标记灰度范围的下限,当使用自定义阈值时起效
 
int MarkRangeUB [get]
 十字标记灰度范围的上限,当使用自定义阈值时起效
 
int MaxCount [get, set]
 设置检测的最大数量。若检测到多于设定的十字标记,需将候选十字标记排序并取前若干个作为结果。
 
int NoiseThreshold [get, set]
 噪声阈值,用于过滤过滤错检,指十字标记与其背景间的最小要求的亮度差异。 取值范围为 1 ~ 100,一般为 10 ~ 30 间的较小数值,默认设置为 20。
 
LPVPolarity Polarity [get, set]
 检测的极性,目标或者边缘极性均可接受。
当十字标记的边缘清晰且极性稳定时,推荐使用边缘极性。 更多...
 
int SizeRangeLB [get]
 十字标记尺寸范围的下限
 
int SizeRangeUB [get]
 十字标记尺寸范围的上限
 
BOOL UseAutoThreshold [get, set]
 是否使用自动阈值用于候选位置提取。默认开启。 若设置了标记尺寸,使用 局部 自适应阈值方法,否则,使用 全局 自适应阈值方法。
 
double Width [get, set]
 十字标记的两条交叉线的线宽。默认设置为 0 表示在检测过程中自动根据尺寸确定合适的边宽。
 
- 属性 继承自 ILObject
LString Name [get, set]
 对象的名称,默认为空。
大多数情况下,LPV 算法类并不使用这个名称。
ILDrawable::SetDrawName() 启用,该名称将被绘制在对象的附近 更多...
 

详细描述

该接口提供亚像素十字标记定位的功能。

十字标记定位用于在输入图像中和指定的区域中,定位一个或多个十字标记。
该算法首先按灰度或边界提取候选的十字标记位置,然后在每个候选位置尝试定位十字的两条交叉中线,获取十字标记的中心位置。 对于多个标记结果的场景,将综合拟合质量、边缘平行度和对称评估等多方面,计算每个位置的定位评分,按照分数从高到低筛选指定数量的结果。
该算法具有高实时性、高亚像素精度等特点。

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

示例代码

成员函数说明

◆ Detect()

LPVErrorCode Detect ( ILImage img,
ILRegion region,
ILCrossMarkResults **  results 
)

检测和定位十字标记。

参数
[in]img 输入的图像
[in]region输入的区域
[out]results返回十字标记定位结果
返回值
error返回错误码

◆ SetMarkRange()

void SetMarkRange ( int  grayLB,
int  grayUB 
)

设置十字标记的灰度范围,使用自定义阈值用于候选位置提取。::UseAutoThreshold 将被设置为 False。

参数
[in]grayLB灰度值范围的下限
[in]grayUB灰度值范围的上限
参见
MarkRangeLB, MarkRangeUB, UseAutoThreshold

◆ SetSizeRange()

void SetSizeRange ( int  lb,
int  ub 
)

十字标记的尺寸范围。 默认设置为一个空的范围,即 (0, 0),表示在检测过程中自动根据形状大小确定尺寸范围。

参数
[in]lb尺寸范围的下限
[in]ub尺寸范围的上限
参见
Width

属性说明

◆ Polarity

LPVPolarity Polarity
getset

检测的极性,目标或者边缘极性均可接受。
当十字标记的边缘清晰且极性稳定时,推荐使用边缘极性。

否则,当标记很小很窄,或者模糊,或者其边缘极性经常改变时,使用目标极性。

参见
KernelSize, UseAutoThreshold