以Halcon17版本为例,其对算子的打包方式分为以下三种:

  1. 本地程序函数,后缀名:.hdev或.dev
  2. HDevelop函数文件,后缀名:.hdvp
  3. 库函数,后缀名:.hdpl

本地程序函数

将可以实现某一个功能的一系列算子打包成一个函数,其作用域只是当前程序,不可被其它程序使用,该函数称为本地程序函数。当程序过于庞大时,通过将各个功能模块打包成本地函数的方式,可以使算法逻辑更加清晰。

其打包方式为:选中所有要打包的算子——单击鼠标右键,选择“创建新函数”——“类型”一栏,选择“本地程序函数”——最后设置函数名及输入输出参数。

HDevelop函数文件

试想一种情况:当两个算法工程师合力编写一个程序时,乙方编写的主程序需要调用甲方编写的某一个功能模块。此时如果甲方仍然将功能模块打包成本地程序函数,那么甲乙两人想要实现对接会变得极其繁琐。这时候就要用到HDevelop函数文件,即非本地程序函数。

其打包方式为:选中所有要打包的算子——单击鼠标右键,选择“创建新函数”——“类型”一栏,选择“HDevelop函数文件”——最后设置函数名及输入输出参数。

Halcon有一个默认的路径专门用来存放外部函数(非本地函数)。我的Halocn安装在了D盘,默认路径如下图所示。函数创建完毕后,可在此路径下找到。

当然我们也可以将外部函数存储在其它路径(不推荐),如下图所示:

无论将外部函数保存在哪里,只要该目录被添加到了外部函数目录列表中,我们新建halcon程序都可以调用该外部函数。

库函数

当我们有多个模块需要打包成非本地函数时,上述方式会导致外部函数目录列表下出现多个文件,甲乙双方对接时难免会有些繁琐。因此Halcon提供了库函数的功能,我们可以将多个外部函数打包到一个库函数里。相当于C++中的DLL模块

假设现在有Add、Mul两个功能模块需要打包到一个库函数里,其打包方式为:

首先将两个功能模块分别打包为对应的两个HDevelop函数文件
然后在Halcon菜单栏选择“函数”——管理函数——函数——管理函数库
创建新的函数库——选中新创建的函数库,然后添加函数文件——保存


如下图所示,经过上述操作,函数库中已经包含了两个函数:

当我们已经建立好了一个函数库,在Halcon中可以将一个新打包的函数直接保存在该函数库里,如下图所示:

调用库函数
如果想要在其它电脑上使用Halcon并调用该库函数,需要如下两步:

把该库函数文件复制到Halcon的外部函数目录中
打开Halcon,在菜单栏中选择函数——管理函数——添加库

HALCON: 本地程序函数(.hdev或.dev)、HDevelop函数文件或外部函数(.hdvp)及库函数(.hdpl)使用详解相关推荐

  1. HALCON示例程序train_characters_ocr.hdev使用SVM分类器训练字体

    HALCON示例程序train_characters_ocr.hdev使用SVM分类器训练字体 小哥哥小姐姐觉得有用点个赞呗! 示例程序源码(加注释) 蓝色字体均为算子解释链接,可以前往查看解答 关于 ...

  2. HALCON示例程序measure_metal_part_extended.hdev金属零件尺寸测量

    HALCON示例程序measure_metal_part_extended.hdev金属零件尺寸测量 示例程序源码(加注释) 关于显示类函数解释 dev_update_off () read_imag ...

  3. HALCON示例程序crystal.hdev通过局部阈值处理和区域处理提取六角形晶体

    HALCON示例程序crystal.hdev通过局部阈值处理和区域处理提取六角形晶体 示例程序源码(加注释) 关于显示类函数解释 dev_close_window () dev_update_wind ...

  4. HALCON示例程序count_fish_sticks.hdev鱼棒完整性检测

    HALCON示例程序count_fish_sticks.hdev鱼棒完整性检测 示例程序源码(加注释) 关于显示类函数解释 dev_update_off () dev_close_window () ...

  5. HALCON示例程序classify_image_class_svm.hdev使用SVM分类器对多通道图像进行分类

    HALCON示例程序classify_image_class_svm.hdev使用SVM分类器对多通道图像进行分类 示例程序源码(加注释) 由于关于SVM分类器的使用之前的贴子介绍过,所以关于SVM的 ...

  6. HALCON示例程序classify_citrus_fruits.hdev应用常规gmm分类器进行水果分类

    HALCON示例程序classify_citrus_fruits.hdev应用常规gmm分类器进行水果分类 示例程序源码(加注释) 读入图片.显示与显示相关设置 read_image (Image, ...

  7. HALCON示例程序class_ndim_box.hdev基于多通道图像的分类

    HALCON示例程序class_ndim_box.hdev基于多通道图像的分类 示例程序源码(加注释) 读入图片 read_image (Image, 'ic') 创建一个新的分类器 create_c ...

  8. HALCON示例程序class_2dim_sup.hdev使用二维像素分类对图像进行分割

    HALCON示例程序class_2dim_sup.hdev使用二维像素分类对图像进行分割 示例程序源码(加注释) 定义Interactive并赋值,0:固定框:1:手工绘制框. Interactive ...

  9. HALCON示例程序circles.hdev边界轮廓的圆形拟合

    HALCON示例程序circles.hdev边界轮廓的圆形拟合 小哥哥小姐姐觉得有用点个赞呗! 示例程序源码(加注释) 读入图片 read_image (Image, 'double_circle') ...

最新文章

  1. Spring JdbcTemplate的queryForList(String sql , ClassT elementType)易错使用--转载
  2. php插入mysql数据返回id
  3. jqGrid文字根据表格大小自动换行
  4. PHP几个防SQL注入攻击自带函数区别
  5. php serialize和json_encode哪个更快_世界 10 大编程语言,Java 不是第一,PHP 才第五...
  6. day27:三剑客之sed
  7. Python 面向对象3-类变量与实例变量
  8. Linux 2.6.19.x 内核编译配置选项简介
  9. R语言进行的变量相关性显著性检验
  10. 悉尼大学的计算机专业叫什么,申请悉尼大学计算机专业怎么样?你想知道的都在这里...
  11. 一步一步实现商城微信小程序(四)
  12. invoice-message【发票样式模板】使用
  13. 从华为辞职门 看IT人如何度过下半生(转载)
  14. 三维形体的数据结构(1)半边数据结构
  15. 项目经理常用软件大全
  16. 程序员的瓶颈是如何产生的(上)
  17. 公众号话题标签怎样添加
  18. 项目管理的SDCA环、PDCA环
  19. Eclipse怎么离线安装JD-Eclipse反编译插件
  20. backhul 和 fronthaul的区别和含义

热门文章

  1. asp.net控件开发技巧(2)关闭基类不必要的功能
  2. 程序员专属段子集锦 2/10
  3. Mongo 3.6.1版本Sharding集群配置
  4. 借助离散数学解决“哈弗大学智商测试”一题 --编程算法
  5. 【原创】大叔问题定位分享(4)Kafka集群broker节点从zookeeper上消失
  6. BZOJ 4826: [Hnoi2017]影魔 单调栈 主席树
  7. windows 运行banana
  8. 仿照vue实现简易的MVVM框架(二)
  9. SSIS连接-左外连接
  10. javascript中事件