在进行图像处理时,很多时候创建模板并通过匹配模板进行图像基准点的分析能大大提高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
以上就是简单的模板创建以及模板匹配,希望对大家有所帮助,谢谢。