zoukankan      html  css  js  c++  java
  • Halcon小函数的封装和代码导出

     

    一、Halcon小函数的封装和修改

     

    1、名词解释:

     

    算子:指Halcon中最基础、最底层的函数(即你看不到它的代码实现),一个算子只有一句话,例如threshold算子。

     

    小函数:由多个算子组合成的函数,我习惯称为小函数。其特点是,可以通过鼠标右键单击“显示函数”打开。如下图:

     

    通常,Halcon代码程序窗口中,算子和小函数的代码颜色是有差异的。

     

     

    2、小函数封装

    下面的算法实现的是得到二维码的面积和中心点坐标

     

    read_image (Image, 'printer_chip/printer_chip_01')

    threshold (Image, Region, 128, 255)

    fill_up (Region, RegionFillUp)

    connection (RegionFillUp, ConnectedRegions)

    *找面积最大的一个,即二维码区

    dev_display (Image)

    select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)

    *得到面积和中心点坐标

    area_center (SelectedRegions, Area, Row, Column)

     

     

    图像通常是外部传入的,不适合囊括在小函数内,因此read_image这句不应该囊括在小函数中。

    后面的代码传入参数只有一个Image,得到的参数有很多,例如SelectedRegions、Area、Row、Column等。如果我们以Image为入参,以Area为出参,封装过程如下:

     

    ① 选中需要封装的全部代码,右键点击“创建新函数”:

     

     

    ② 在弹出的窗口中填写函数名,如Get_CodeArea:

     

     

    ③ 然后点击上图中“参数”,删减参数,把不用的参数删掉即可:

       

     

    ④ 点击“确定”生成小函数:

     

     

    3、小函数修改

     

    由于目的不同,有时候小函数需要增减传入参数,或者增减传出参数。即小函数需要修改。步骤如下:

     

    ① 点击下图图标:

     

     

    ② 选择函数“Get_CodeArea”,然后可以修改函数名,或者参数:

     

     

    ③ 假如我们不需要二维码面积,而需要它的中心点坐标,因此可把函数名改成“Get_Point”,然后改参数如下(先把Area删掉,然后在“控制参数”的输出里添加Row和Column):

     

     

    图标参数:一般Region、Image、XLD等都属于图标参数。

    控制参数:一般数据、字符串都属于控制参数。

     

     

    ④ 点击“确定”:

     

     

    二、Halcon小函数的导出

    我们可以直接导出代码,看这个小函数是什么玩意儿:

    执行“文件——导出”,弹出页面参数设置如下:

     

     

    导出的代码其他地方都不看,我们只关心这个小函数(方法),如果这个小函数的Halcon代码有变化,重新导出以后,将该方法替换掉C#代码里的方法就行了。

     

  • 相关阅读:
    Lucene 基础理论
    .NET Micro Framework V4.2 QFE2新版本简介
    FlashPaper
    在django中实现QQ登录
    基于lucene的搜索服务器
    ASP.NET MVC的Razor引擎:RazorViewEngine
    .Net Micro Framework
    关于基于DDD+Event Sourcing设计的模型如何处理模型重构的问题的思考
    泛型
    Log4j源码分析及配置拓展
  • 原文地址:https://www.cnblogs.com/xh6300/p/10638381.html
Copyright © 2011-2022 走看看