一、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

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

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

HALCON导出函数的更多相关文章

  1. Halcon小函数的封装和代码导出

    一.Halcon小函数的封装和修改 1.名词解释: 算子:指Halcon中最基础.最底层的函数(即你看不到它的代码实现),一个算子只有一句话,例如threshold算子. 小函数:由多个算子组合成的函 ...

  2. DLL导出函数和类的定义区别 __declspec(dllexport)

    DLL导出函数和类的定义区别 __declspec(dllexport) 是有区别的, 请看 : //定义头文件的使用方,是导出还是导入 #if defined(_DLL_API) #ifndef D ...

  3. 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册

    <zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...

  4. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数017·point点函数

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数017·point点函数 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“p ...

  5. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数015,vector矢量

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数015,vector矢量 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“p ...

  6. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数016,xld,xld轮廓

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数016,xld,xld轮廓 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“ ...

  7. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数014,tuple,元组

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数014,tuple,元组 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“p ...

  8. 将halcon导出的c++程序打包成dll库

     1.从“文件”菜单中,选择“新建”,然后选择“项目…”. 2.从“项目类型”窗格中选择“Visual C++”下的“Win32”. 3.从“模板”窗格中,选择“Win32 控制台应用程序”. 4.为 ...

  9. Mysql导出函数、存储过程

    下面是导出存储过程的代码 1 # mysqldump -u 数据库用户名 -p -n -t -d -R 数据库名 > 文件名 其中,-d 表示--no-create-db, -n表示--no-d ...

随机推荐

  1. 5G/NR OTA (Over The Air) 测试详解

    原文链接:http://www.sharetechnote.com/html/5G/5G_OTA.html 1 什么是OTA (Over The Air) OTA代表Over The Air.为了使用 ...

  2. GNS3 模拟免费ARP

    R2 : conf t int f0/0 no shutdown ip add 192.168.1.254 255.255.255.0 end R1 : conf t int f0/0 no shut ...

  3. oozie的常见错误

    1.变量或路径的英文字母写错,常常是大小写搞混,或者是字母顺序颠倒. 2.本地 oozie_works 工作目录下的文件,如job.properties,workflow.xml等,修改后,忘记上传到 ...

  4. Git如何将本地test分支设置跟踪origin/test分支

    前提条件: 有一个远程仓库其中只有一个master分支,然后我把它clone到本地 1.新建一个本地分支test, 2.然后把它push到远程仓库(git push origin test) 3.本地 ...

  5. docker-compose(grafana influxdb) + telegraf 快速搭建简单监控

     灵活实现方案:   1:     telegraf 为go 语言写得占用内存小 收集主机各项监控数据 定时写入 时序DB   influxdb ------------------------&qu ...

  6. netty权威指南学习笔记一——NIO入门(4)AIO

    NIO2.0引入了新的异步通道的概念,并提供了异步文件通道和异步套接字通道的实现.异步通道提供以下两种方式获取操作结果. 1.通过java.util.concurrent.Future 类来表示异步操 ...

  7. 使用pip install jupyter报错处理办法及修改Jupyter默认加载路径的方法

    1.配置python环境之后想使用Jupyter,网上查看可以使用pip install Jupyter安装,执行命令行后正常安装,安装到一半以后报错,如图1.2 图1 图2 2.发现是安装过程中安装 ...

  8. P-数学程序猿今天开始写博客了

    ∧          /| /\7          ≤_/      ∧. |      |         /   /      /        〉 |     Z_,<   /      ...

  9. 140-PHP类的抽象方法和继承

    <?php abstract class father{ //定义一个抽象类 abstract public function test(); //定义抽象方法 } class son exte ...

  10. linux命令,个人的日记本

    查看所有服务 chkconfig --list service httpd status ps -aux | grep svn