halcon学习 基于形状的模板匹配find_shape_model

这篇博客介绍了如何使用OpenCV进行基于形状的模板匹配,分别展示了匹配圆和回形针的示例代码,并探讨了参数如MaxOverlap、max_deformation、NumLevels和Greediness对匹配效果的影响。通过调整这些参数,可以优化匹配速度和准确性。

find_shape_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness : Row, Column, Angle, Score)

  1.  [Image] 输入的图像
  2.  [ModelID]create_shape_model 创建的 匹配模板
  3.  [AngleStart] 模板旋转的起始角度
  4.  [AngleExtent] 模板旋转的范围,既最终旋转的范围是[AngleStart, AngleStart + AngleExtent],不能超过create_shape_model时的角度范围
  5.  [MinScore] 控制匹配出的模板相似度,越大越严格
  6.  [NumMatches] 最大匹配出的数量,0 无限制
  7.  [MaxOverlap] 控制允许的重叠量, 0 不允许重叠,
  8.  [SubPixel] 亚像素提取的控制字
  9.  [NumLevels] 金字塔层数,不能超过create_shape_model时的金字塔层数,0使用和create_shape_model一样的金字塔层数
  10.  [Greediness] 贪婪度 0 尽最大可能匹配到目标 , 1 可能匹配不到目标,但速度最快

匹配圆

* 代码不具实用性,只用于演示
dev_get_window (WindowHandle)
dev_clear_window ()
dev_set_color ('red')
read_image (Image, 'circle_plate')
dev
Halcon中,`find_shape_model`函数用于在图像中查找预先创建的形状模型。该函数的角度相关参数及使用方法如下: `find_shape_model`函数的原型为:`find_shape_model(Image : :ModelID,AngleStart,AngleExtent,MinScore,NumMatches,MaxOverlap,SubPixel,NumLevels,Greediness :Row,Column,Angle,Score)` [^1]。 ### 角度相关参数说明 - **`AngleStart`**:指定在搜索形状模型时的起始角度。该参数定义了搜索角度范围的起始点,单位为弧度。例如,如果将`AngleStart`设置为0,则表示从0弧度开始搜索模型可能出现的角度。 - **`AngleExtent`**:指定搜索形状模型时的角度范围。它表示从`AngleStart`开始的角度扩展量,同样以弧度为单位。例如,若`AngleStart`为0,`AngleExtent`为`pi/2`,则搜索范围是从0到`pi/2`弧度。 ### 角度计算 在`find_shape_model`函数的输出参数中,`Angle`表示找到的形状模型相对于创建模型时的旋转角度,单位为弧度。这个角度信息可用于确定模型在图像中的实际旋转情况。 ### 示例代码 ```python import halcon as ha # 假设已经创建了形状模型,ModelID 为模型的标识符 # 读取图像 image = ha.read_image('your_image.jpg') # 定义角度相关参数 AngleStart = 0 AngleExtent = 3.14 # 搜索 0 到 pi 弧度的角度范围 # 调用 find_shape_model 函数 Row, Column, Angle, Score = ha.find_shape_model(image, ModelID, AngleStart, AngleExtent, 0.5, 1, 0.5, 'sub_pixel', 'auto', 0.9) # 输出找到的模型的角度 print('找到的模型的角度(弧度):', Angle) ``` ### 注意事项 - 角度参数的设置应根据实际应用场景进行调整。如果已知模型的旋转范围较小,可以缩小`AngleStart`和`AngleExtent`的范围,以减少搜索时间。 - 在使用`find_shape_model`函数时,要确保输入的图像和创建模型时使用的图像具有相似的特征和对比度,否则可能会影响角度的准确计算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值