1、Halcon小函数的封装和修改算法
1、名词解释:函数
算子:指Halcon中最基础、最底层的函数(即你看不到它的代码实现),一个算子只有一句话,例如threshold算子。spa
小函数:由多个算子组合成的函数,我习惯称为小函数。其特色是,能够经过鼠标右键单击“显示函数”打开。以下图:3d
一般,Halcon代码程序窗口中,算子和小函数的代码颜色是有差别的。blog
2、小函数封装ip
下面的算法实现的是获得二维码的面积和中心点坐标字符串
read_image (Image, 'printer_chip/printer_chip_01')io
threshold (Image, Region, 128, 255)基础
fill_up (Region, RegionFillUp)select
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等都属于图标参数。
控制参数:通常数据、字符串都属于控制参数。
④ 点击“肯定”:
2、Halcon小函数的导出
咱们能够直接导出代码,看这个小函数是什么玩意儿:
执行“文件——导出”,弹出页面参数设置以下:
导出的代码其余地方都不看,咱们只关心这个小函数(方法),若是这个小函数的Halcon代码有变化,从新导出之后,将该方法替换掉C#代码里的方法就好了。