HALCON导出函数
阅读原文时间:2023年07月15日阅读:1

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

出处:http://www.cnblogs.com/xh6300/

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

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

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器