一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

在进行图像处理时,很多时候创建模板并通过匹配模板进行图像基准点的分析能大大提高ROI的选取准确度和效率。

下面通过实例来讲述模板匹配的快速学习应用。

 

首先创建模板
先读取图像,对读取的图像创建模板并保存,创建模板要挑选的是所有图像都存在的特征或区域以保证在实际处理时程序都能够正常进行图像分析处理。

Halcon中以draw开头的算子都是需要人在图像上手动绘制,

代码如下:

复制代码
 1 *读取图像
 2 read_image (Image, 'H:/NEW IMAGE/21.tiff')
 3 *在图像上手动绘制ROI,即选择绘制的模板区域
 4 draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
 5 *将绘制的模板区域生成矩形
 6 gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
 7 *提取出区域的图像,作为模板图像
 8 reduce_domain (Image, Rectangle, ImageReduced1)
 9 *创建模板
10 create_shape_model (ImageReduced1, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
11 *将创建的模板存成指定路径的文件
12 write_shape_model (ModelID, 'E:/modle1.shm')
复制代码

模板创建完后下面的处理程序只需要上面代码最后保存的那个模板文件,代码如下:

复制代码
 1 *读取图像
 2 read_image (Image1, 'H:/NEW IMAGE/13.tiff')
 3 *读取模板文件
 4 read_shape_model ('E:/modle1.shm', ModelID1)
 5 *在图像中查找模板,并返回模板的中心坐标
 6 find_shape_model (Image1, ModelID1, -0.39, 0.78, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle1, Score1)
 7 *匹配到模板
 8 if(|Row1|==1)
 9 *在图像中显示模板
10     dev_display_shape_matching_results (ModelID1, 'red', Row1, Column1, Angle1, 1, 1, 0)
11 endif
复制代码

以上就是简单的模板创建以及模板匹配,希望对大家有所帮助,谢谢。

posted on   一杯清酒邀明月  阅读(4119)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示