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

--------------------------------------------
本文系原创作品,转载请注明出处。如果您认为文章对您有帮助,可以点击下方的【好文要顶】或【关注我】;如果您想进一步表示感谢,可以通过网页右侧的【打赏】功能对我进行打赏。感谢您的支持,我会继续写出更多对大家有帮助的文章!文章有不理解的地方欢迎跟帖交流,博主经常在线!^_^
HALCON导出函数的更多相关文章
- Halcon小函数的封装和代码导出
一.Halcon小函数的封装和修改 1.名词解释: 算子:指Halcon中最基础.最底层的函数(即你看不到它的代码实现),一个算子只有一句话,例如threshold算子. 小函数:由多个算子组合成的函 ...
- DLL导出函数和类的定义区别 __declspec(dllexport)
DLL导出函数和类的定义区别 __declspec(dllexport) 是有区别的, 请看 : //定义头文件的使用方,是导出还是导入 #if defined(_DLL_API) #ifndef D ...
- 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册
<zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数017·point点函数
<zw版·Halcon-delphi系列原创教程> Halcon分类函数017·point点函数 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“p ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数015,vector矢量
<zw版·Halcon-delphi系列原创教程> Halcon分类函数015,vector矢量 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“p ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数016,xld,xld轮廓
<zw版·Halcon-delphi系列原创教程> Halcon分类函数016,xld,xld轮廓 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“ ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数014,tuple,元组
<zw版·Halcon-delphi系列原创教程> Halcon分类函数014,tuple,元组 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“p ...
- 将halcon导出的c++程序打包成dll库
1.从“文件”菜单中,选择“新建”,然后选择“项目…”. 2.从“项目类型”窗格中选择“Visual C++”下的“Win32”. 3.从“模板”窗格中,选择“Win32 控制台应用程序”. 4.为 ...
- Mysql导出函数、存储过程
下面是导出存储过程的代码 1 # mysqldump -u 数据库用户名 -p -n -t -d -R 数据库名 > 文件名 其中,-d 表示--no-create-db, -n表示--no-d ...
随机推荐
- Python在运行中发生错误怎么正确处理方法,案例详解!
在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描 ...
- eshop3-JDK 安装
1. 下载软件:http://learning.happymmall.com/ 2. 清理系统默认的JDK rpm -qa | grep jdk 查看已经安装的JDK,然后卸载 查看的结果:jdk1 ...
- 偶然在博客中见对百度一个面试题的探讨,写些自己的看法以及指出探讨中不对的观点:百度面试题:求绝对值最小的数 有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现 例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。
今天申请了博客园账号,在下班后阅览博客时发现了一个关于百度面试题探讨的博客(其实是个很基础的问题),此博客url为:http://www.blogjava.net/nokiaguy/archive/2 ...
- 使用Python绘制漫步图
代码如下: import matplotlib.pyplot as plt from random import choice class RandomWalk(): def __init__(sel ...
- java集合简单特性
- sprintf与sscanf用法举例
一.sscanf 从tmp中读取a,b,c. int main(){ ]; int a; double b; ]; while(gets(tmp) != NULL){ sscanf(tmp, &quo ...
- 使用NlohmannJson写JSON保留插入顺序
1. 正文 nlohmann/json是一个C++的读写JSON的组件,号称使用现代C++范式写的.简单看了一下,这个组件确实包含了很多cpp11以上的特性,在vs2015及一下的版本甚至没办法正常编 ...
- 二十五、JavaScript之查找字符串中的字符串indexOf和lastIndexOf的用法
一.代码如下 二.效果如下 <!DOCTYPE html> <html> <meta http-equiv="Content-Type" conten ...
- 027-PHP编码和解码函数base64
<?php $data = "我爱PHP";//解码前的值 print("我爱PHP: " . base64_encode($data)); //进行解码 ...
- sql server C#操作。原文在收藏页面
C#操作SQL Server数据库 1.概述 2.连接字符串的写法 3.SqlConnection对象 4.SqlCommand对象 5.SqlDataReader对象 6.DataSet对象 7 ...