当前位置: 首页 > 范文大全 > 公文范文 >

VC与Matlab混合编程实现图像处理

时间:2022-10-21 19:05:08 来源:网友投稿

摘 要透过图像加强处理能够提升图像及鉴别效果。文章通过对图像增强处理方法的探讨,对VC与Matlab混合编程方式进行介绍。

【关键词】VC Matlab 混合编程 图像处理

Matlab是通过矩阵为基准运算单位的高效率数值计算软件,具备众多函数库,操作便利,能够使用在不同行业。VC在研发界面Windows应用程序中具有十分显著的优点,Matlab源于矩阵运算函数库在数据处理及表达上具备优势。所以,综合两者优势,透过混合变成的方式,能够降低研发难度,短期内完成功能庞大的实用软件的研发。

1 VC与Matlab的混合编程方法

1.1 常用接口介绍

1.1.1 运用Matlab引擎

MatlabEngine库属于MathWorks公司给出的一组与Matlab交互的函数库程序,其提供了其他软件与Matlab数据交换通讯的接口,在Windows中运用ActiveX自动化以及DDE技术完成,透过此组函数,客户能够在自己的应用程序内控制Matlab,完成数据动态互换,MatlabEngine不只能够将工具箱内的函数调出,通过Matlab庞大的图形功能,还能够调用Matlab内的C\C++函数,可是其无法摆脱Matlab环境单独运转。

1.1.2 运用Matlab自带编译器MCC

运用Matlab编译器MCC,把m文件转变为c或cpp文件,并且还能够将m文件生成为可为其他程序直接调用DLL动态链接库,生成EXE可执行文件,原理Matlab运行环境,良好提升代码执行效率,可使其并不能对图形功能给予支持。

1.1.3 运用Matcom转化

Matcom为MathTools公司研发的一个集成研发环境,其为Matlab内的m文件给予调试,可以将Matlab的源代码译为同等功能的C++源码,之后在通过C编译器把C++源码编译为脱离Matlab环境可执行文件exe或动态链接库dll,运用Matlab接口生成的代码的可读性能较好,支持图形函数,可是无法编译关于Matlab的内部类M文件。

1.2 Matlab和VC接口编译环境设定

在VC编译Matlab引擎程序以前,一定要引进Matlab对应的库文件,环境设定办法如下:

(1)透过project/options,链接到Directories页面,选取includefiles,把路径D:\ Matlab\extern\include添入;

(2)通过Library files页面,添加路径;

(3)将菜单设置属性页面打开,在link页面中,添入中文名libmx.lib libmat.lib libeng.lib至Obiect/library modules编程框内。

1.3 VC内调用Matlab引擎的程序完成

为了令VC++程序可以启动Engine,并透过其对Matlab的Workspace进行访问,Matlab提供一组简单且完善的引擎函数,以此建立Matlab引擎的基本库函数,VC对Matlab的所有操控都需先将Engine打开,操作完成之后,通过engClose()将Engine关闭。

2 混合编程前期链接

组件对象模型COM为微软公司研发的通过组件为发布单元的软件研发技术,此技术令不同平台中使用不同语言研发的代码均可共同操作。

2.1 COM组件的生成过程

在VC环境内调用COM组件的过程较为繁琐,通过Matlab,依照步骤阐明COM组件在Matlab内的生成过程。

(1)在Matlab的命令窗口,通过mbuild-setup命令设定编译条件,假如已设定过,则能忽略此步。

(2)建立M文件,文件内容为定义一个包括图像处理算法的Matlab函数,此函数能够调用Matlab自身的函数,也能够编写自身的程序及算法。

(3)启动Matlab Builder for Com,新建一个工程,依照提示将相应设定填写完,向此工程内加入第二步编辑好的M函数。

(4)透过对Build点击,COM Object将Matlab函数自动生成COM组件与相应文件。

2.2 关键词理解与解析

在进入COM混合编程之前,先要把COM组件内的-idl.h、mwcomtypes.h与-i.c这几个文件,粘贴至VC工程的目录内,并在COM所需变成的CPP内包括#include“-idl.h”及#include“-idl-i.c”文件。

3 VC与Matlab混合编程实现图像增强应用

在一些光线较强或弱甚至曝光不足或过度的状况中,图像的灰度值或许会束缚于一个较小的范围里,以此令图像不清晰或灰度层次过差。并且,图像在传输、压缩、转换当中也会令图像清晰度降低。所以,透过线性灰度更换,将图像某个位置的灰度值拉伸,提高其显示程度,且降低其余像素的显示度,将重点目标及特点突出,以此有利于信息的判别及提取。

比如,在VC内研发的交互界面,可以将一个BMP图像打开,之后能够设定一个像素变换的位置,点击图像增强处理按钮后,调用Matlab的函数库采取图像增强运算,并显现处理后的结论。

4 结束语

圖像加强指的是将图像内的一些信息进行加强处理,以此提升图像的显示效果,能够强调总体图像或其他部分特征,加大图像比对度,阻碍或降低不感兴趣或不重要的特点,以此能够更加有效地对图像采取判读及鉴别的目的。VC在可视化面向对象集成研发环境中使用十分广泛,能够研发完成不同类别的应用软件,因为其具备较好的运算效率,因此在数字图像处理范畴中的应用将更为广泛。

参考文献

[1]蔡浩宇,王红波,杨树仁等.VC++与Matlab混合编程技术在现代控制理论系统仿真中的应用[J].电子世界.2013.(3):112-115.

[2]夏欣.VC与Matlab混合编程实现方法及具体实例研究[J].青岛理工大学学报.2012.33(3):83-88.

[3]刘宁,刘财,王凯等.基于Matcom平台的VC++与Matlab混合编程地震正演模拟[J].世界地质.2011.30(4):655-659.

作者单位

中国人民公安大学 北京市 102600

相关热词搜索: 图像处理 混合 编程 vc matlab