该接口提供亚像素十字标记定位的功能。 更多...
Public 成员函数 | |
LPVErrorCode | Detect (ILImage *img, ILRegion *region, ILCrossMarkResults **results) |
void | SetMarkRange (int grayLB, int grayUB) |
void | SetSizeRange (int lb, int ub) |
![]() | |
ILObject * | Copy () |
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 表示在检测过程中自动根据尺寸确定合适的边宽。 | |
![]() | |
LString | Name [get, set] |
对象的名称,默认为空。 大多数情况下,LPV 算法类并不使用这个名称。 若 ILDrawable::SetDrawName() 启用,该名称将被绘制在对象的附近 更多... | |
该接口提供亚像素十字标记定位的功能。
十字标记定位用于在输入图像中和指定的区域中,定位一个或多个十字标记。
该算法首先按灰度或边界提取候选的十字标记位置,然后在每个候选位置尝试定位十字的两条交叉中线,获取十字标记的中心位置。 对于多个标记结果的场景,将综合拟合质量、边缘平行度和对称评估等多方面,计算每个位置的定位评分,按照分数从高到低筛选指定数量的结果。
该算法具有高实时性、高亚像素精度等特点。
使用这个接口,需要创建一个 LCrossMarkDetector 对象。
LPVErrorCode Detect | ( | ILImage * | img, |
ILRegion * | region, | ||
ILCrossMarkResults ** | results | ||
) |
检测和定位十字标记。
[in] | img | ![]() ![]() |
[in] | region | 输入的区域 |
[out] | results | 返回十字标记定位结果 |
error | 返回错误码 |
void SetMarkRange | ( | int | grayLB, |
int | grayUB | ||
) |
设置十字标记的灰度范围,使用自定义阈值用于候选位置提取。::UseAutoThreshold 将被设置为 False。
[in] | grayLB | 灰度值范围的下限 |
[in] | grayUB | 灰度值范围的上限 |
void SetSizeRange | ( | int | lb, |
int | ub | ||
) |
|
getset |
检测的极性,目标或者边缘极性均可接受。
当十字标记的边缘清晰且极性稳定时,推荐使用边缘极性。
否则,当标记很小很窄,或者模糊,或者其边缘极性经常改变时,使用目标极性。