VC++和MATLAB混合编程在图像处理中的应用研究.doc
文本预览下载声明
VC++和MATLAB混合编程在图像处理中的应用研究
第26卷第6期
VoI.26No.6
临沂师范学院
JournalofLinyiTeachersCollege
2004年12月
Dec.2004
VC++和MATLAB混合编程在图像处理中的应用研究
李晓东,袁伟
(1.临沂师范学院信息学院,山东临沂276005;2.苍山县职业技术教育中心,山东苍山277700)
摘要:分别介绍了VisualC++和Matlab及其引擎的特点.提出了基于VisualC++和高版本Matlab
的新的混合缟程方法;通过实例具体介绍了该方法在图像处理中的应用,验证了这种混合缟程方法在图像处
理中的方便,高效.
关键词:MatlabengineVisualC++;混合缟程;图像处理
中图分类号:TP391.9文献标识码:A文章编号:1009—6051(2004)06--0105--04
VisualC++是由Microsoft公司推出的可视化编程语言,它是目前综合性最高,最强大的软件开发工具
之一.集成了功能强大的编辑器,编译器,链接器,调试器,APPWizard,ClassWizard,AppStudio等多种多样
的可视化编程工具,利用它可以完成各种各样应用程序的开发,从低层软件到直接面向用户的软件.C++语
言相对其它高级语言有很高的代码效率,速度比Matlab代码快几倍甚至几十倍,但是在编写一些工程计算
程序时,如信号处理中的快速傅立叶变换,数字图像处理等就需要比较复杂的算法,编写得不好就会影响程
序的运行速度.
Matlab是美国MathWorks公司自2O世纪8O年代中期推出的数学软件,不断吸收各学科领域权威人士
所编写的实用程序,经过不断的发展和扩充,现已发展成为国际上最优秀的科技应用软件之一.其强大的科
学计算与可视化功能,简单易用的开放式可扩展环境以及多达3O多个面向不同领域而扩展的工具箱(Tool—
Box)支持,包括了通信系统,信号处理,图像处理,神经网络,模糊控制,小波分析,鲁棒控制等现代工程技术
学科的内容,使得MATLAB在许多学科领域中成为计算机辅助设计与分析,算法研究和应用开发的基本工
具和首选平台.特别是Matlab在图像处理方面更具有明显的优势:(1)它具有强大的矩阵运算功能,在进行
一
些简单的图像变换时可以避免很多烦琐的计算;(2)图形显示方便,有专门的灰度及彩色图像显示函数,甚
至在调试过程中也能随时观察图形的变化:(3)带有丰富的图像处理函数库,如wavelettoolbox,imagepeo-
cessingtoolbox等,由于库函数都是由本领域的专家编写,用户不必担心函数的可靠性.可以说,用Matlab进
行科学开发是站在专家的肩膀上.而所有的图像处理算法若用VisualC++语言由用户自己重新编写将相
当麻烦.所以用VisualC++和Matlab混合编程将大大简化编程过程,缩短软件的开发周期.
我们通过在VisualC++中调用MATLAB引擎的方法进行图像处理编程,既方便了调用MATLAB工
具箱中的图像处理函数,又精简了源程序代码,还保留了VisualC++面向对象,可视化等Windows程序风
格和C++语言对数据快速的处理能力.下面就MATLAB引擎,混合编程的方法等详细讨论.
1Matlab引擎简介
Matlabengine提供了MatlabAPI函数,用户不必关心Matlabengine是如何实现的,只要用户调用这些
函数即可.正是通过这些API函数实现了应用程序进程之间的传递数据,从而达到VisualC++和Matlab
之间的无缝结合.Matlabengine库中的API函数如下:
(1)EngOpen
作用:开启Matlabengine.
(2)EngClose
作用:关闭Matlab引擎
(3)engGetArray
收稿日期:2004?10-11
作者简介:李晓东(1974一),男.山东苍山人,临沂师范学院讲师,硬士.研究方向;智能控制.
105
临沂师范学院第26卷
作用:从Matlabengine中获得一个Matlab矩阵,用于数据交换.
(4)EngEvalString
作用:执行一个Matlab命令
(5)EngPutVariable
作用:从应用程序中向Matlabengine发一个mxArray型变量,用于数据交换
(6)engOutputBuffer
作用:创建字符缓冲区以获得Matlab文本输出.
2VisualC++与Matlab混合编程的实现方法
2.1编程环境
Windows98,VisualC++6.0,Matlab6.5,VisualC++6.0安装在C:\programfiles;Matlab安装在d:盘
的根目录下.
2.2数据准备
2.
显示全部