您好,欢迎来到易配在线!登录 注册 经销商|联系我们|综合搜索
长城CNC天正电气TENGEN威纶通WEINVIEW海德汉HEIDENHAIN欧姆龙OMRON欧瑞传动EURA富怡易福门IFM艾默生Emerson

VC++在多传感器智能检测机器人中应用

2009/10/15 21:46:00              

借鉴利用ActiveX控件编程中对VC++灵活运用的优点,提出了基于动态链接库的VC++编程方法,使编程更加简单灵活,便于程序的稳定、移植和扩展。该编程已经成功地应用在多传感器智能检测机器人中。

关键词:软件包;机器视觉;图像采集卡;VC++;动态连接库?

Application of VC++ in the Intelligent Detecting Machine

LI Canfei, WANG Yaonan, ZHENG Shanxian, LIU Huanjun

(College of Electrical & Information Engineering, Hunan University,

Changsha 410082, China)

Key words: software package; machine vision; imagine card, VC++; DLL

1多传感器智能检测机器人

多传感器智能检测机器人是集光,机,电,多传感器,计算机,数字图像处理以及机器视觉技术为一体的综合性高科技设备,其机械传动,电控,多视觉传感检测部分必须相互协调工作,共同构成一个有机的整体。首先采用CCD摄像机或其他图像拍摄装置将目标转换成图像信号,然后转变成数字化信号传送给专用的图像处理系统,根据像素分布、亮度和颜色等信息,进行各种运算来抽取目标的特征,如:面积、长度、数量、位置等,最后,根据预设的容许度和其他条件输出结果,如:尺寸、角度、偏移量、个数、合格/不合格、有/无等。

多传感器智能检测机器人采用Matrox公司的Matrox Corona?Ⅱ图像采集卡。该图像采集卡有6路单色视频输入接口(2路RGB彩色输入),10bit A/D转换,支持标准和非标准图像信号的采集,支持触发采集,可采集的图像信号的象素频率最高可达30MHz,自带显示输出模块,支持电视信号输出。并且支持该公司的软件开发包Mil-lite。

Matrox Corona?Ⅱ利用MIL LITE 7 Mil-lite卡控制库以及MIL 7 DEV P或U Matrox图像库也即Matrox Imaging Liabrary动态链接库(MIL),可在MicrosoftVisual C++下用DLL接口(MIL/Mil-lite)编程,也可以在Microsoft Visual Basic或C++下用ActiveX(OCX)接口编程。Mil-lite包括MATROX公司生产的各类图像采集卡的驱动程序。Mil-lite以动态链接库或ActiveX控件的形式提供了一整套图像采集、显示、处理、存储的函数,用户能在其基础上使用多种编程语言;(Visual C++、Visual Basic等)进行二次开发。?

要利用Mil-lite库编程首先需要安装Mil-lite库。运行Mil-lite安装程序后,在所出现的安装界面上选择“Installation”中的选项,其中选“MIL”将安装动态链接库,选“ActiveMIL”安装ActiveX控件,选“intellicam”将安装intellicam(一个非常有用的MIL工具软件)。然后按提示完成安装。

Mil-lite编程需要包含几个基本对象:application,system,buffer,display,digitizer。它们之间的从属关系如下图所示。另外还有一个graphic对象。

基于动态链接库的VC++编程的具体操作是在MIL 7 DEV P或U Matrox图像库(MIL)函数库编程的基础上,借鉴利用MIL LITE 7 Mil-lite卡控制库编程例子中利用VC++编程,不是把VC++单一作为编译环境,而是利用MFC编程,并且在界面上提供底层接口。这样既可以充分利用动态链接库中的函数,还可以充分利用MFC资源,特别是可以不需要修改底层程序,就可以利用运行界面上的程序接口修改底层程序。例如对采集通道的修改,对DCF配置文件的修改等,都可以采取这种方法。进一步可以在界面上提供修改算法的接口,修改或者增加图像处理的算法。这样,不仅使编程变得更加简单,并且便于程序的稳定,便于程序的移植,不了解Mil-lite编程的工程人员也可以很快掌握一般性的操作。

在程序开始运行的时候先不利用Mil-lite动态链接库设置application等对象。而只是和普通的VC++编程一样仅仅生成一个普通单文档或多文档界面。

在出现的界面上点击菜单Sets-DCF/Channel Option选项以后弹出图2所示对话框。

首先必须用MIL函数和MappAlloc()和MsysAlloc()初始化配置一个application对象和一个system对象,接着用MdigAlloc()初始化配置digitizer对象。而MdigAlloc()的第三个参数就是从界面提供的接口上得到的参数。用MdigChannel()来分配工作通道,这个工作通道也是从界面提供的接口上得到的参数。

然后采用switch语句加MdigChannel()函数来实现。

上面只是在多传感器智能检测机器人中提供底层接口的例子,进一步,可以提供功能更加强大的接口,例如修改算法,增加算法等接口。当有了新的算法以后不必再修改底层程序,通过界面提供的接口就可以把新的算法加入到程序中。

  • 喜欢 ( 0 )
  • 不喜欢 ( 0 )

网友评论

(查看全部0条评论)

您好 ,喜欢这篇文章吗?  

您还未登录,登录后才可发表评论,请立即登录注册

站点地图| 会员服务| 关于网站| 招聘信息| 法律声明| 联系我们| 友情链接

邮箱:1010196856@qq.com 客服热线:0571-88802870(工作时间:周一至周五8:30至17:30)
Copyright@2014-2016 www.epiol.com All Rights Reserved 版权所有:杭州锐联工业科技有限公司   浙ICP备13025252号-2   公安机关互联网站安全 浙公网安备33010502003191号

微信扫一扫


技术咨询