【halcon】模板匹配参数之金字塔级数

在进行模板匹配时,设置NumLevels为1导致程序卡死,CPU使用率达到100%。文章解释了金字塔级别与特征提取的关系,级别越高,特征越抽象,处理速度越快。设置NumLevels为0会使用CreateShapeModel时设定的层级。对于大图片,应避免NumLevels设为1,创建模板时应合理规划金字塔层数,使用auto关键字可优化性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

今天,在使用模板匹配的时候,突然程序卡死,CPU直接飙到100%。最后排查发现是模板匹配其中一个参数 NumLevels 导致的:

NumLevels:
The number of pyramid levels used during the search is determined with numLevels. If necessary, the number of levels is clipped to the range given when the shape model was created with CreateShapeModel. If numLevels is set to 0, the number of pyramid levels specified in CreateShapeModel is used. 

大致意思是:

NumLevels: 搜索期间使用的金字塔级别数由 numLevels 确定。

CreateShapeModel 创建形状模型时会有一个范围,(我平时使用的是”auto“)

如果 numLevels 设置为 0,则使用 CreateShapeModel 中指定的金字塔等级数。

什么是金字塔级数

现在来理解一下金字塔:

 这样看,其实金字塔就是对图片做卷积,也就是特征的提取,金字塔级数越大,抽取的特征越抽象,判定的速度就越快。

卡死的原因

卡死的原因是我,使用find_scaled_shape_model是我将 NumLevels 设置为1。

后面,将其设置为0后,就不卡了,后续我设置成2,依旧会卡但是没卡死。设置成3和4,就变得快了。

小结

  1.    如果图片比较大(比如有十几兆到上百兆),NumLevels 最好不要为1。
  2.    在创建模板时(CreateShapeModel),就要规划好金字塔层数。可以使用auto 关键字。
  3.    模板匹配时(find_scaled_shape_model),如果 numLevels 设置为 0,则使用 CreateShapeModel 中指定的金字塔等级数。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code bean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值