




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第12章
HALCON混合编程HALCON数字图像处理德国HALCON是一款具有交互式编程开发的图像处理软件,可导出VBC/C++,C#等代码,利用其自有的HDevelop编程工具,可以轻松地实现代码从HALCON算子到C、C++、C#等程序语言的转化。利用
HDevelop进行图像分析,完成视觉处理程序的开发,程序可以分成不同的子程序,每个子程序可以只做一件事,像初始化,计算,或是清除。主程序用于调用其它子程序,传递图像信息或是接收显示结果。最后,程序导出成我们要用的程序代码,接续下一步工作。完整的程序开发是在程序设计环境中进行,比如MicrosoftVisual
Studio。由HDevelop输出的程序代码,通过指令加入程序中
(例如include)。至于程序的接口则是利用程序语言的功能来建构,接下来进行编辑和连接,完成应用程序的开发。其标准开发流程如图
12-1所示。下面分别介绍HALCON下VB、C#和VC的混合编程。第12章HALCON混合编程图12-1标准开发流程HALCON数字图像处理12.112.212.3HALCON数字图像处理HALCON与VB混合编程
HALCON与.NET混合编程
HALCON与VC混合编程第12章HALCON混合编程12.1
HALCON与VB混合编程案例:成捆棒材复核计数系统介绍:成捆复核计数系统是采用机器视觉技术检测棒材端面,通过图像处理获得棒材中心信息并进行识别计数,实现准确复检计数的新型检测装置。棒材复核计数系统是由工控机、光源、工业相机、镜头和HALCON与VB混合编程的成捆棒材复核计数软件组成。现场采集的成捆棒材图像如图12-2所示。图12-2采集的成捆棒材图像HALCON数字图像处理案例:成捆棒材复核计数系统(1)HALCON程序开发程序运行结果如图12-3所示。图12-3
HALCON编程界面HALCON数字图像处理案例:成捆棒材复核计数系统(2)导出从菜单栏>文件>导出,导出为支持VB格式的文件。如图12-4和图12-5所示图12-4导出菜单图12-5导出文件及格式HALCON数字图像处理案例:成捆棒材复核计数系统(3)新建一个空的VB对话框工程,如图12-6所示,建立准备用来进行图像操作的按钮(或菜单),并按功能命名按钮(或菜单)。图12-6新建工程HALCON数字图像处理案例:成捆棒材复核计数系统(4)添加控件。菜单栏>工程>部件>控件,勾选上halcon/com
library
v1.8,确定。可以看到新的组件图标,HWindowXCtrl控件用于显示图像,如图12-7所示。图12-7添加控件HALCON数字图像处理案例:成捆棒材复核计数系统(5)点击HALCON组件图标,在VB窗体添加HWindowXCtrl用于显示图像(黑色的图框区域),如图12-8所示。图12-8窗体添加图形控件HALCON数字图像处理案例:成捆棒材复核计数系统HALCON数字图像处理从写好的HDevelop程序中导出VB源代码。把变量定义,初始化,按不同功能分别复制到VB程序的不同位置。加载图片说明建立窗口变量,把HALCON控件生成的变量ID赋给该变量。编译运行程序,如图12-9,图12-10所示。案例:成捆棒材复核计数系统图12-9应用软件界面HALCON数字图像处理案例:成捆棒材复核计数系统图12-10处理结果HALCON数字图像处理HALCON和VB混合编程的特点HALCON数字图像处理类似于过程的风格:全部算子都归到HOperatorSetX类;HDevelop专门的控制语句由VB传统的控制语句代替(赋值,循环等);数组表达式由VB的Variant实现;HUntypedObjectX类足以处理全部图标数据结构;HALCON中用于可视化的函数dev_*转换为标准HALCON算子;数组和图标变量的内存自动管理:初始化,释放,重写,句柄清除。12.2
HALCON与VB混合编程案例:电路板缺陷检测系统介绍:在电路板的大批量生产过程
中,出现的故障基本都是线路错误,主要可分为:短路、断路、毛刺、缺损四类。在生产中需要将这些质量问题及时检查出来,以免在电路板调试和使用过程中留下隐患,造成更大的损失。一块有缺陷的电路板如图12-11所示。图12-11HALCON数字图像处理案例:电路板缺陷检测系统新建项目如图12-12所示,选择.NET
Framework
4运行平台,创建
Windows窗体应用程序,修改解决方案名称为“混合编程”,项目名称为“单片机实例”,选择程序保存路径,创建Form1窗体如图
12-13所示。图12-12新建项目HALCON数字图像处理案例:电路板缺陷检测系统图12-13创建窗体HALCON数字图像处理案例:电路板缺陷检测系统图12-14添加引用打开添加引用对话框,通过浏览>查找范围,选择
D:\halcon\bin\dotnet35\halcondotnet.dll,找到动态链接库所在置,添加动态链接库如图12-15所示。打开解决方案资源管理器>右键引用>添加引用,如图12-14所示。HALCON数字图像处理案例:电路板缺陷检测系统图12-15添加动态链接库HALCON数字图像处理案例:电路板缺陷检测系统图12-16调出工具箱点击菜单栏上的视图>工具箱,调出工具箱,如图12-16所示。在工具箱的任意位置单击鼠标右键>选择项,如图12-17所示,进入选择工具箱项对话框,如图12-18所示。图12-17HALCON数字图像处理案例:电路板缺陷检测系统图12-18工具箱对话框HALCON数字图像处理案例:电路板缺陷检测系统图12-19点击浏览按钮,通过D:\halcon\bin\dotnet35\halcondotnet.dll找态链接库所在的位置,添加动态链接库。点击.NET
Framework组件,在已存在的HWindowControl控件前面打钩进行该控件的添加,如图12-19所示。此时工具箱中存在HWindowControl控件,如图
12-20所示。图12-20HALCON数字图像处理案例:电路板缺陷检测系统从工具箱中把一个Button控件与一个HWindowControl控件拖入窗体Form1,在Button控件处点击鼠标右键,选择属性,把该button控件的text属性(显示文本属性)改成“处理图片”。将HALCON编写的代码使用导出模板导出,选择文件导出路径、导出文件、导出文件格式,此处导出文件名为
danpianji.cs,导出文件格式为C#-HALCON/.NET,选择使用导出模板,导出对话框如图12-21所示。图12-21HALCON数字图像处理案例:电路板缺陷检测系统图12-22通过单片机实例(本项目名称)>添加>现有项,把导出的
danpianji.cs文件添加到项目里,如图12-22,图12-23所示。HALCON数字图像处理案例:电路板缺陷检测系统图12-23HALCON数字图像处理案例:电路板缺陷检测系统HALCON数字图像处理在窗体Form1的文件头添加引用,代码为:“usingHalconDotNet;”;导入的danpianji.cs文件中存在HDevelopExport类,在窗体Form1的中创建该类的对象,对象名自行定义,此处定义为HD,代码为:“HDevelopExport
Hd=new
HDevelopExport();”;在Form1的构造函数中调用HDevelopExport类的系统初始化函数,代码为“HD.InitHalcon();”;在Button控件的点击事件中调用HDevelopExport类的图像处理函数,代码为:
“HD.RunHalcon(hWindowControl1.HalconWindow);”;解决方案资源管理器中>单片机实例(本项目名称)>属性>生成>目标平台,把X86改成X64,使程序可以在64位计算机上运行,如图12-24所示。案例:电路板缺陷检测系统图12-24HALCON数字图像处理案例:电路板缺陷检测系统(5)编译、运行,如图12-25所示。点击“处理图片”按钮,如图
12-26所示。已经将所有有缺陷的区域标示出来。图12-25运行界面HALCON数字图像处理案例:电路板缺陷检测系统图12-26处理结果HALCON数字图像处理HALCON和.NET混合编程的特点HALCON数字图像处理标准的面向对象的c#风格;HALCON算子可以作为类的成员使用;Htuple仍然是控制数据的核心类;建议手动管理内存手动释放目标:
Obj.Dispose强制释放未引用的目标:GC.Collect(
);GC.WaitForPendingFinalizers()12.3
HALCON与VC混合编程案例:芯片检测系统在HDevelop编写芯片检测代码,导出cpp文件,如图12-27所示。图12-27HALCON数字图像处理案例:芯片检测系统(1)新建一个空的Console工程;把从HDevelop中导出的.cpp文件加入到工程中。打开工程设置菜单>C/C++菜单>Gategory>选择processer,在Additional
include
directories编辑框中加上$(HALCONROOT)/include,$(HALCO
NROOT)/include/cpp,如图12-28所示。图12-28步骤一HALCON数字图像处理案例:芯片检测系统(2)工程设置菜单>Link菜单>Getegory>选择Input,在
Object/library
modules中加入halconcpp.lib,在Additional
librpath中加入$(HALCONROOT)/lib/$(HALCONARCH),如图12-29所示。图12-29步骤二HALCON数字图像处理案例:芯片检测系统编译程序,运行。MFC程序新建一个空的MFC工程,document程序或者dialog程序。这里新建一个dialog程序,如图12-30所示。图12-30新建MFC工程HALCON数字图像处理案例:芯片检测系统HALCON数字图像处理建立准备用来进行图像操作的按钮(或菜单),明确按钮(或菜单的功能;打开从HDevelop中导出的cpp代码,把action函数体中用到函数,根据功能的不同,分别拷贝到图像处理菜单或按钮对应的代码处;因为在不同按钮下可能会用到同一个变量,因此我们不能把变量依旧设置成临时变量了。如图12-31,我们把变量放置在对话框的头文件里,设置为成员变量。把包含文件和名空间放到头文件起始部分。案例:芯片检测系统图12-31头文件设置HALCON数字图像处理案例:芯片检测系统图12-32工程设置一4)工程设置,和console程序相同,如图12-32和图12-33。HALCON数字图像处理案例:芯片检测系统图12-33工程设置二HALCON数字图像处理案例:芯片检测系统图12-34运行结果(5)编译代码,运行。如图12-34所示。HALCON数字图像处理运行打包HALCON数字图像处理打开C:\Program
Files\MVTec\HALCON-9.0\bin\x86sse2-win32文件夹,复制halconcpp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大家健康活动方案
- 夏天喝酒活动方案
- 大衣特价活动方案
- 大班亲子剪纸活动方案
- 2025-2030中国绿色建筑行业标准分析及市场需求预判与可持续发展路径研究
- 大学创新大赛活动方案
- 2025-2030中国智能穿戴设备消费者偏好变迁与产品创新报告
- 城市公交车优惠活动方案
- 大班学拼音活动方案
- 天水无烟日活动方案
- DB31-T 1593-2025 基于自动驾驶功能的公交运营技术要求
- 医院纯水系统管理制度
- 2025年中考英语考前冲刺押题模拟试卷 3套(含答案)
- 乡村基层工作笔试题目及答案
- CJ/T 258-2014纤维增强无规共聚聚丙烯复合管
- 2025年小升初语文复习:积累运用 专项汇编(含答案)
- 静脉留置针大赛理论考核考试试题及答案
- 中国石油集团宝石管业有限公司招聘笔试题库2025
- 2025春季学期国开河南电大专科《舞蹈与儿童舞蹈创编(1)-》一平台无纸化考试(作业练习+我要考试)试题及答案
- 湖南省湘乡市中考各科试卷及答案
- 留置辅警面试题目及答案
评论
0/150
提交评论