halcon使用笔记
一、handle(句柄)使用笔记
1、Halcon的底层是C语言开发的,创建需要的模板后,会分配相应的内存空间,封装成句柄对象,句柄在halcon中的数值即对象的地址值,所以在使用的过程中,创建了一个模板,使用完成后,就必须用对应的clear函数清空这个模板,防止发生内存泄露。
2、使用句柄值和0比较来判断句柄是否创建成功不可取
handle为长整型long类型,值代表的是地址,long的取值范围为-2147483648–2147483647,即使创建成功,值也可能为0和负值,所以比较没有意义,会引起程序逻辑异常。句柄以HTuple类型储存,可以通过判断数组的长度TupleLength()
来判断是否创建成功。
二、二维码解码相关
1、二维码简介
二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。
2、步骤
3、相关算子
(1)创建二维码算子
create_data_code_2d_model (: : SymbolType, GenParamNames, GenParamValues : DataCodeHandle)
参数一:二维码类型
参数二:二维码属性
参数三:属性值
参数四:模型句柄
(2)设置二维码模型的选定参数
set_data_code_2d_param ( : : DataCodeHandle, GenParamName,GenParamValue : )
参数一:句柄(输入)
参数二:二维码属性
参数三:属性值
(3)解码
find_data_code_2d ( Image : SymbolXLDs : DataCodeHandle,GenParamName, GenParamValue : ResultHandles, DecodedDataStrings )
三、c++中使用halcon读取图像注意点
1、路径采用双反斜杠
2、不要有空格和中文
四、算子参数书写形式
1、基本形式
halcon的算子只有四个参数,用:隔开
比如:
A(图像参数输入:图像参数输出:控制参数输入:控制参数输出:)
2、参数多余或者少于4个时参数格式
(1)少于
少于不输入
(2)多于
用逗号分割
比如:
B(图像输入:图像输出:控制参数输入1,控制参数输入2:控制参数输出:)
五、connection()算子使用笔记
1、算子功能
计算出一个输入区域的连接组件
halcon中所有的区域都是一个整体,所以由许多不相连的组件(比如孔洞,分开的物品等)组成的区域需要使用该算子进行分割。
2、详细解释
3、作用
用在物体的分割以及面积计算之前。
4、C++中函数格式
首字母大写,输出采用引用形式。