Halcon轮廓模板匹配教程:实战示例
1星 需积分: 49 111 浏览量
更新于2024-09-08
收藏 1KB TXT 举报
"这篇文章主要介绍了如何使用Halcon进行轮廓模板匹配。通过提供的代码示例,我们可以看到一个完整的轮廓匹配流程,包括读取图像、定义矩形区域、创建形状模型、搜索模型并显示结果。"
在计算机视觉领域,Halcon是一种强大的机器视觉软件,它提供了丰富的图像处理和模式识别功能,包括模板匹配。轮廓模板匹配是Halcon中的一个重要应用,用于在图像中寻找与预定义模板相似的轮廓。
1. **图像读取与窗口管理**:
首先,代码通过`read_image()`函数读取了一个名为'500.bmp'的图像,并获取了图像的宽度和高度。接着,打开一个新的窗口显示图像,窗口大小为原图的1/4,颜色设置为黑色。
2. **定义兴趣区域**:
`draw_rectangle1()`函数用于在窗口上画出一个矩形,这通常代表我们感兴趣的区域。`gen_rectangle1()`则创建了一个矩形对象,用于后续处理。
3. **图像区域提取**:
通过`reduce_domain()`函数,我们从原始图像中提取出矩形区域内的部分,生成`ImageReduced`,这有助于减小计算量,提高匹配速度。
4. **创建形状模型**:
使用`create_scaled_shape_model()`创建一个形状模型。这里参数包括:
- `'auto'`表示自动选择特征点。
- `-rad(10)`和`rad(80)`分别代表最小和最大的旋转角度范围。
- `0.9`和`1.1`是缩放比例的上下限。
- 其他参数设置是为了优化匹配过程,如匹配策略和形状相似度。
5. **搜索形状模型**:
`find_scaled_shape_model()`函数用于在图像中搜索形状模型。参数包括:
- 搜索时允许的旋转角度范围、缩放比例和匹配分数阈值。
- `0.5`的`'least_squares'`表示使用最小二乘法进行定位。
- `0`表示不使用额外的约束。
- `0.9`表示至少90%的轮廓点必须匹配。
6. **匹配结果处理**:
如果没有找到匹配(即`|Row|`为0),则清理形状模型并结束程序。否则,关闭当前窗口,重新打开一个新窗口显示匹配结果。用红色线条显示找到的轮廓,并通过循环遍历`Row`,用`gen_rectangle2()`函数在每个匹配位置画出矩形。
通过这个示例,我们可以学习到如何在Halcon中实现轮廓模板匹配,这对于自动化检测、缺陷检测等应用场景非常有用。同时,理解并掌握这些步骤对于编写自己的机器视觉程序至关重要。
2022-07-14 上传
2022-07-14 上传
2022-07-15 上传
点击了解资源详情
2022-07-14 上传
2023-05-02 上传
2018-05-18 上传
nitu63
- 粉丝: 1
- 资源: 11
最新资源
- node-selenium-driver-filedetector:具有文件检测器绑定的节点网络驱动程序
- spring-boot-graphql
- remixed2recipes
- 星级酒店预定主题响应式模板
- 企业门户网站管理系统,包括前台展示、后台管理、后端服务(Node.js、Koa、sequelize、MySQL),前.zip
- cordova-plugin-mmedia:千禧一代媒体广告的CordovaPhoneGap
- Lita:公司聊天室的机器人伴侣-开源
- eslint-plugin-jsx-extras:一组Eslint插件,用于基于应用程序的特定JSX规则
- bls_custom:粘在一起将Blocky Survival Minetest服务器固定在一起
- 进口玻璃磨边机PLC程序.rar
- Schizo-crx插件
- angular-starter:基于angularJS框架的全初始化前端项目
- javascript-dom-exercises-2.3
- TheGrid:按键游戏
- autotrader-scraper:用于刮擦自动交易器网站以获取汽车图像的工具。 我用它们来训练神经网络
- 库:通用功能的声明。 存储库的内容不属于GNU C库