Halcon软件在机器视觉课程实验教学中的应用

2015-03-23 22:10黎小琴
科技资讯 2014年30期
关键词:数字图像处理机器视觉软件

黎小琴

摘 要:针对高等院校机器视觉和数字图像处理等课程的特点,探讨了如何应用Halcon软件改进实验教学方式和教学手段,并结合实例说明Halcon在机器视觉图像处理等教学中的应用。教学实践表明,在机器视觉等课程的实验教学阶段引入Halcon软件,更有利于加强学生对技术的深入理解,提高学生的创新和实践能力,收到了良好的实验教学效果。

关键词:Halcon 软件 机器视觉 数字图像处理 实验教学

中图分类号:TP39 文献标识码:A 文章编号:1672-3791(2014)10(c)-0172-02

图像处理、图像分析、机器视觉和计算机视觉是彼此紧密关联的学科,其特点均具有很强的理论性和实践性。如果在教学中不重视实践教学或实践教学手段不力,都不利于学生创新能力和动手能力的培养。高校教师应重视理论教学的同时,更要重视实践教学,关键是要找到强有力的教学方式和教学手段,找到恰当的图像处理软件。Matlab科学计算软件具有丰富的图像处理工具箱[1-2],目前被广泛1应用于图像处理的教学中。但是,机器视觉课程具有很强的理论和实践性,一些功能齐全的机器视觉软件,如Halcon和Open CV等软件的出现,为提高这些课程的实践教学效果提供了新的手段。本文将探讨如何应用Halcon软件改进实验教学方式和手段,并结合实例说明Halcon在机器视觉等课程教学中的应用。

1 机器视觉硬件系统概述

机器视觉系统[3]是基于机器视觉技术为机器或自动化生产线建立的一套视觉系统,图1为实验用机器视觉系统,包含摄像机、照明光源、镜头、图像采集卡和计算机组成。

2 Halcon概述

Halcon 软件是德国MVtec公司开发的一套完善的标准的机器视觉算法包[4],是得到广泛应用的机器视觉集成开发环境,提供了1100多种具备突出性能控制器的库,如图像的运算、图像的几何与数学变换、滤波、色彩分析、Blob分析、形态学计算分析、3D校正等。Halcon软件保障与硬件无关,支持大多数图像采集卡及带有Directshow和IEEE 1394驱动的采集设备。

Halcon软件包含一个功能强大的交互式软件接口HDevelop,提供一个通用的浏览界面,访问不同的图像采集设备,支持Windows、Linux和Solaris运行环境,为用户搭建了快速有效的图像处理程序开发平台。它甚至可以从图像采集设备中实时捕捉图像。HDevelop拥有很多数据和图像检查的图形工具。它的图形用户界面支持多种显子语言。HDevelop具备语法检查,语法凸现,函数参数的合适取值,后续操作和替代算子建议,程序调试,完整的在线帮助等功能。Halcon软件还可以导出以C++、C#、C、Visual Basic或者VB.NET程序,以嵌入到其他程序中。

3 实验教学应用实例

在机器视觉等课程的理论教学中,我们的教学目的是让学生掌握相关的理论知识,在机器视觉等课程的实验教学阶段,我们更要培养学生的算法编程能力和实践应用能力。利用Halcon软件的高度交互式编程环境HDevelop,能编译和测试视觉处理算法,可以方便查看处理结果。再者,Halcon软件自带许多图像处理与机器视觉的相关案例,涵盖了图像处理与机器视觉基础知识的大部分内容[4]。我们在教授学生理论知识的同时,结合案例的讲解,使学生在掌握理论的同时熟悉实践过程,进而培养学生的编程实现能力。因此选择Halcon软件作为教学软件,成为培养学生图像处理和视觉处理算法编程能力和实践能力的又一重要手段。由于篇幅限制,这里仅以利用Blob分析算法实现车牌识别的实例来说明 Halcon软件在机器视觉与数字图像处理等课程教学中的应用。

Blob分析算法实现车牌定位识别程序如下:

read_image(Image,'lisence')

fill_interlace(Image,ImageFilled,'odd')

threshold(ImageFilled,Region,0,90)

connection(Region,ConnectedRegions)

select_shape(ConnectedRegions, SelectedRegions,'width','and',30,70)

select_shape (SelectedRegions,Letters, 'height','and',60,110)

sort_region(Letters,SortRegions,'upper_left','true','column')

read_ocr_class_mlp('Industrial_0-9A-Z.omc',OCRHandle)

do_ocr_multi_class_mlp(SortRegions,ImageFilled,OCRHandle,Class,Confidence)

area_center(SortRegions,Area,Row, Column)

disp_message(3600,['The result is:'], 'window',200,150,'yellow','false')

for Index:=0 to 6 by 1

disp_message(3600,Class[Index], 'window',200,300+20*Index,'yellow', 'false')endfor

上面程序中,利用read_image算子读入要识别的车牌图像,命名为Image,如图2所示;通过fill_interlace算子修改在采集图像过程中造成的两个半幅图像拼接的问题。接着,用threshold算子对图像进行阈值分割处理,分割出含有车牌的图像区域,灰度阈值范围为0~90;接着用connection算子将选择出来的区域进行相联,形成相连区域ConnectedRegions,如图3所示。处理后的图像除了车牌区域使我们的感兴趣区域外,其他的都为干扰区域,于是用算子select_shape通过限定width和height将车牌区域选择出来,如图4所示。车牌区域共有7个,从左至右排序后,利用现有Industrial_0~9A~Z字符库对车牌7个部分进行识别,用到算子do_ocr_multi_class_mlp。识别之后,利用for循环将结果用浅黄色字体显示在窗口中,实验结果如图5所示。

从上面的车牌识别实例可以看出,HDevelop交互编程环境中的函数概念清楚,用法明了,应用简单。由于每一个HDevelop算子的各个参数都可以在编程过程中及时调整和编辑,这样我们在实验过程中对程序进行单步调试,讲解重要算子的选择、调试和参数编辑,让同学们看到算法运行的每一个步骤,这样同学们就能很快掌握相关知识点。Halcon具备可实时查看图像属性的交互对话框,来查看程序中的参数设置,灰度直方图,特征值柱状图,放大镜和特征检测等。随着学生对HDevelop编写算法的掌握,后续的教学部分可以从HDevelop导出算法代码并集成到应用程序中,例如生成用户界面等,这样同学们就可以开发机器视觉程序,添加用户界面,集成调试生成可执行的应用程序。

4 结语

结合机器视觉和图像处理实验教学的特点和难点,我们采用Halcon软件进行机器视觉和图像处理辅助教学,将Halcon引入到机器视觉教学中,通过对典型案例的讲解和程序一步步的调试以及编程过程的演示,对学生进一步理解理论知识有很大的帮助,可以激发学生自己动手编写有特定需求的图像处理算法程序,提高学生的编程实践能力,取得良好的教学效果。由于Halcon易学易用,能很好的激发学生的学习兴趣,我们可以通过课程设计来鼓励学生利用Halcon编写自己的机器视觉算法程序,我们还可以通过毕业设计来让学生编写和开发自己的机器视觉应用程序,从而激发学生的学习和科研热情,提高解决实际问题的能力。

参考文献

[1] 张钰.MATLAB软件在信号与系统实验教学中的应用[J].高校实验室工作研究,2011(1):50-51.

[2] 张广军.机器视觉[M].北京:科学出版社,2005.

[3] 金贝.基于Halcon的机器视觉教学实验系统设计[D].北京:北京交通大学,2012.

[4] 李树涛,黎福海,林翚.Halcon软件在机器视觉课程实验中的应用[J].高校实验室工作研究,2012(3):61-63.endprint

猜你喜欢
数字图像处理机器视觉软件
有趣的识花软件
信息与计算科学专业《数字图像处理》课程教学探讨与实践
大场景三维激光扫描仪在研究生实践教学培养中的应用
基于机器视觉的工件锯片缺陷检测系统设计
微课在大学专业课中的应用研究
以应用实例为主线、以程序设计为主导的数字图像处理课程教学方法改革
基于机器视觉技术的动态“白带”常规检测系统的开发
机器视觉技术在烟支钢印检测中的应用
即时通讯软件WhatsApp
丰富多彩的Android软件