登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 外文翻译 > 理工学类 > 电气工程及其自动化 > 正文

基于Lab VIEW和MATLAB之间无缝集成技术的图像处理外文翻译资料

 2022-11-13 04:11  

英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料


基于Lab VIEW和MATLAB之间无缝集成技术的图像处理

西北大学信息科学与技术710127西安电子邮件:xuwuni@163.com lanx@nwu.edu.cn2

摘要 - 在LabVIEW中使用MATLAB Script节点或直接调用MATLAB ActiveX服务器的方法常用于实现混合编程,以扩展LabVIEW的科学计算能力。 MATLAB引擎必须以这种方式运行,这会导致较低的执行效率。本文分析了COM组件的生成过程,然后介绍了LabVIEW直接调用的COM组件的方法,其中MA TLAB程序可以在没有MA TLAB操作环境的情况下快速运行。在数字图像采集和处理系统中已经有效。这种方法的特点是充分利用LabVIEW的两个优点,更好的硬件支持,快速配置和MATLAB强大的复杂数据计算,完善了LabVIEW机器视觉和图像处理功能,在建立可视化机器人系统方面具有很高的应用价值。

关键词:LabVIEW的; MATLAB; COM;无缝集成技术

一.简介

近年来,数字图像处理技术已经从实验室进入了广泛的领域,如交互式计算机辅助设计,工业机器人,地球资源监测,遥感等。具有图形化编程思想的LabVIEW,数据流执行方式,强大的机器视觉工具套件和其他功能,越来越受到人们的青睐,特别是在图像采集系统中。它几乎足以胜任大多数信号测量和分析任务,但对于大量的数据操作,例如数字图像处理,它似乎是不充分的[1] [2]。 MATLAB具有内置的图像处理工具箱,因此人们更愿意在数字图像处理中使用它。因此,为了解决这个问题,Lab VIEW具有易于硬件配置和图像数据采集中的高采集速度的优点,但在数字图像数据处理操作中效果较差,因此有必要将Lab VIEW与MA TLAB无缝结合,特别是在图像采集和处理方面具有重要的实际意义。已经研究了使用MA TLAB Script节点或直接调用MA TLAB ActiveX服务器来实现Lab VIEW和MATLAB之间的混合编程的方法,然而,必须在这样的运行中运行MATLAB引擎.3西安交通大学机械工程系710049西安,中国电子邮箱:wdyjz@126.com方式,导致效率较低。此外,有三种方法可以实现LabVIEW和MATLAB的无缝集成:中间文件传输方法,VC 参数转换方法和COM(组件对象模型)组件方法。中间文件传输方法具有较差的交互,因此不适合要求高实时和多参数的图像采集和处理条件。 VC 参数转换方法不仅复杂,而且对开发人员的编程技巧很高。但是,由于MATLAB m文件的使用,编程要求较低,不需要MATLAB环境,因此COM组件方法是首选。最后,它可以编译成可执行文件,因此LabVIEW可以直接调用MATLAB函数[3]。在本文中,我们使用COM组件方法实现Lab VIEW和MATLAB技术之间的无缝集成。此外,该方法应用于基于LabVIEW的图像处理系统,可以实现和完善LabVIEW,IMAQ Vision软件无法实现的机器视觉功能。

二.COM组件技术的优点

MATLAB是一种脚本语言开发软件,可以快速实现用户的好主意和概念。使用COM技术,MATLAB Builder for COM可以将低速MA TLAB脚本文件编译成二进制COM组件,可以通过LabVIEW调用,以便用MATLAB快速实现算法开发的目的。美国NI公司开发了Lab VIEW语言,这是一种非常好的面向对象的图形编程语言。 LAB VIEW也是一个开放的开发环境,它使用图标而不是文本代码来创建应用程序,并且有大量的VI库可以与其他应用程序进行通信。实际上,可以通过Lab VIEW使用MA TLAB Script节点和ActiveX自动化技术来实现混合算法开发。但是,真的。 LabVIEW与MATLAB IS之间的集成。使用COM技术,它占用较少的系统资源,提高应用软件的效率,并且易于分发应用软件。 ...这种方法的初衷与软件开发思想一致,称为组件“重用”,非常有利于高实时视频图像处理软件的开发。经验表明,在新系统中,大部分内容都是成熟的,而创新的需求只占很小的一部分。通过软件可重用技术可以快速实现大量成熟的工作。用户开发了MATLAB算法组件,可以支持各种COM应用程序。因此,每次开发新的软件系统都不必从零开始,程序员应该直接使用可以组装(或合理修改)到新系统中的现有组件。基于COM技术的LABVIEW和MA TLAB无缝集成技术可以简化软件开发过程,降低开发和维护成本,提高软件质量。整个系统流程图如图1所示。

三.编译和构建COM组件

A. COM组件编译器配置

可以使用MATLAB Compiler将M文件编译成DLL文件,也可以使用MATLAB COM Builder将m文件编译成COM组件。首先应该适当地设置MA TLAB编译环境,并且一般使用适用的第三方编译器,例如C / C 编译器。在本文中,我们选择Visual C / C 8.0编译器。计算机环境:Pentium(R)4 CPU 3.06GHz,512MB RAM,软件环境:visual studio .Net 2005,MATLAB2009a。在MATLAB的命令窗口中,键入:“mbuild -setup”和“mex -setup”(如果在编译的MATL 程序中,某些函数库需要在平均时间内进行调整)。首先,我们可以检查VC 环境,这意味着COM组件的编译器配置已完成。然后按照提示,一步一步配置编译器,直到配置成功完成[4]。操作员界面如图2所示。

B. COM组件生成

MA TLAB2006a及更高版本通过使用“dotnettool”或“deploy tool”命令调用COM组件的生成管理接口。 MATLAB Builder for .NET在MATLAB编译器上进行了扩展。它具有以下特性:a)打包MATLAB函数,以便.NET程序员可以在任何CLS语言中使用它。 b)创建保持MAT LAB灵活性的组件。 c).NET Builder提供了更强大的数据转换,索引和数据队列格式化功能。 d)MATLAB函数句柄的错误是标准的托管异常。错误描述包括MA TLAB代码描述的错误细节,简化了调试过程。 e)创建COM组件。 .NET Builder提供“MWarray”继承类,该类在“.NET Builder MWarray程序集”中定义,以支持MATLAB数据类型。但是,有必要引用汇编将本地类转换为MATLAB数据类型。通常,“部署工具”功能用于打包到COM组件中。下面以形态学图像处理算法为例来说明这一点。创建一个名为car1.m的子函数。程序是一个带有Function关键字的语句,它与“m file”[5]的名称相同。

这个子功能是使用形态学的板图像侵蚀,扩张,打开和关闭这样的操作。

Function carl(imagepath) I=imread(imagepath );

11 =rgb2gray(l);

12=wiener2(11,[3 3]);

Se=[1 ° 1;0 1 0;1 ° 1];

13= imdilate(l2,Se);

14= imerode(l2,Se);

15= imopen(l2,Se)

16= imclose(l2,Se)

figure; imshow(Il);

figure; imshow(13);

figure; imshow(l4);

figure; imshow(l5);

figure; imshow(l6);

end

应该在MA TLAB中加载和调试“car1.m”文件,以便获得原始图像侵蚀,扩张,打开和关闭的正确输出。将m文件打包到COM组件的步骤如下:首先,在MATLAB命令行中输入“deploy tool”,将出现MATLAB Builder对话框。然后,单击File New project,创建一个新的项目文件,在组件名称中输入“my car”,在类名中输入“my car”,然后单击“Add”和“OK”,如图3所示。 ,打开项目添加文件菜单,在项目中添加car1.m文件,设置版本号,单击Build Com Object,现在将在comtest distrib 文件夹中生成“mycar_2_0.dll”。这里完全生成COM组件。

C. COM组件包

在本节中,我们应该创建一个包含一些支持和注册文档的自解压可执行文件,以使组件可以在其他计算机上运行。具体步骤如下[6]:a)单击“组件”中的“包组件”选项,打开文件包对话框; b)添加必须包含在应用程序中的所有用户和系统文件; c)如果目标机器需要使用MATLAB编译器生成的组件,则添加MATLAB组件MCR(MATLAB Component Runtime); d)单击“创建”命令以创建名为componentnarne.exe(mycar.exe)的自解压可执行文件; e)将自解压可执行文件分发到所需的计算机。

D. COM组件

注册双击“_install.bat”或执行可执行的自解压命令时,我们可以在自己的计算机内注册组件。我们也可以使用“regsvr32”命令手动注册。例如,打开“开始/运行”界面,键入“Regsvr32 C: mycar _ 2_ O.dll”命令,单击“确定”按钮。计算机会弹出一个对话框,显示“注册”C: mycar_2_0.dll成功“其他客户端环境可以调用COM组件来完成应用程序编程。注意,在上面的组件包程序中,我们进入了文件夹包目录,哪个可以不包含任何中文字符,否则可能无法注册。注册后,COM组件的路径不能更改或删除,否则将无法找到。

四.在LABVIEW中调用COM组件

在LabVIEW中调用COM组件的方法和原理与VC 和VB环境中的类似[7],但具体实现有很大不同。所以我们应该仔细处理以正确调用COM组件。

A.加载COM组件

由于MATLAB M文件生成的后缀名称为“dll”的COM组件在LabVIEW中没有前面板,我们应该使用ActiveX系列函数而不是ActiveX容器来调用它。我们在LabVIEW中创建一个新的VI,切换到图中的all函数!通讯!ActiveX查找“Automation open.vi”并将其放在程序框图中,在此VI的输入引脚找到“automation Refnum”并右键单击它,从快捷菜单中选择“ActiveX Class”,最后查找“我的汽车”控制,选择它,单击“确定”,如图4所示.

B.实验室视图中调用COM组件的关键

LabVIEW提供了可用于调用COM组件的ActiveX接口函数[8]。 COM组件的主要功能是方法功能。调用COM对象时,输入参数的类型将转换为MATLAB内部数组格式,并传递给已编译的MA TLAB函数。调用COM组件后,输出参数将从MATLAB内部数组格式转换为COM自动化数据类型。此方法要求所有输入和输出参数必须作为COM客户端函数中的变量类型(Variant)进行传输,因此Lab VIEW可以自动将输入数据的类型转换为变量,以满足COM对象的输入要求。 在Lab VIEW程序中调用COM对象时,如果它存在输出变量,首先将“1”分配给变量“nargout”(函数输出参数的数量),然后通过“Variant to Data”节点,变量类型数据被分配 转换为LabVIEW可以操作和显示的数据类型。 特别是,如果COM对象的输出数据是变体类型,我们必须知道COM对象的返回数据的类型。 如果选择了错误的数据类型,Lab VIEW将反馈错误消息。 因此我们可以调用“Invoke Node.vi”性能函数来完成上述转换。特别是类型转换,否则会出现错误结果或没有结果出现,此外LabVIEW程序错误说明不会给出明确的错误来源[9]。 上面的程序LabVIEW调用COM对象“mycar”方法。 在方法“imagepath”中,参数将函数的输入参数表示为动态数据类型。 使用它时,我们可以直接连接图像路径的数据,或者在连接之前通过“to Variant”转换为变体类型。 由于此函数没有输出变量,因此在LabVIEW中调用它时将直接输出MATLAB图像格式。 最后,使用“Close Automation”节点关闭“Refnum”。 编程COM组件由Lab VIEW调用,如图5所示。

在Lab VIEW中,“Refnum”指的是指向对象的临时指针,因此它仅在对象打开时有效。关闭对象后,LabVIEW会自动断开连接。为了回收系统资源,如果不需要对象,应立即释放它。在本例中,如图6所示,在Lab VIEW中调用COM组件的图像处理效果。它证明了在MATLAB中进行的图像处理或在LabVIEW中调用COM组件的效果是相同的。此外,我们可以打包Lab VIEW程序和COM组件,以便它可以独立于LabVIEW和MATLAB环境运行。以下是以下描述:a)有时,在打包时,我们需要在“应用程序设置”选项卡中选择“启用ActiveX”选项(例如,使用“MA TLAB脚本”节点),否则程序的实现没有响应。 b)在LabVIEW中运行可执行程序生成的程序时,必须确保已安装“LabVIEW运行时引擎”。注意:如果在高版本中生成可执行程序,则LabVIEW在具有低版本LabVIEW的计算机上运行,​​它还需要安装“LabVIEW运行时引擎”。 c)使用COM组件方法时,在打包期间,我们必须打包先前生成的可执行文件(例如,“mycar.exe”),但必需的“vi”文件除外。

五.结论

本文采用COM技术实现LabVIEW与MATLAB的无缝集成,并成功应用于数字图像处理。 该方法的初衷与称为组件“重用”的软件开发思想一致。 我们已经达到了将强大的MATLAB图像处理功能与强大的Lab VIEW硬件支持和采集功能

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[18325],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图