• Halcon创建模板并进行模板匹配


    在进行图像处理时,很多时候创建模板并通过匹配模板进行图像基准点的分析能大大提高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

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

  • 相关阅读:
    关于android 中WebView使用Css
    android下面res目录
    Android View如何获取焦点
    用javascript修改html元素的class
    设计模式-观察者模式(List列表维护观察者)
    闭包->类的实例数组排序
    Javascript setTimeout 带参数延迟执行 闭包实现
    最简单的闭包 掰开揉碎
    原创最简单的ORM例子
    List<T> 转换 DataTable
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/12735784.html
Copyright © 2020-2023  润新知