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#代码里的方法就行了。

     

    作者:xh6300

    --------------------------------------------

    本文系原创作品,转载请注明出处。如果您认为文章对您有帮助,可以点击下方的【好文要顶】或【关注我】;如果您想进一步表示感谢,可以通过网页右侧的【打赏】功能对我进行打赏。感谢您的支持,我会继续写出更多对大家有帮助的文章!文章有不理解的地方欢迎跟帖交流,博主经常在线!^_^

  • 相关阅读:
    你不知道的JavaScript(上)this和对象原型(二)
    hihocoder 1566 皇室成员的名字
    csu 1756: Prime
    csu 1770: 按钮控制彩灯实验
    csu 1898: 复盘拉火车
    csu 1901: 赏赐 OR 灾难
    csu 1909: Perfect Chocolate
    csu 1958: 数字游戏
    symfony2 环境搭建笔记
    php preg_match($p, $str, $match)方法简介
  • 原文地址:https://www.cnblogs.com/shuimuqingyang/p/10861139.html
Copyright © 2011-2022 走看看