Matlab与C混合编程的方法分析研究与实现毕业设计.doc

Matlab与C混合编程的方法分析研究与实现毕业设计.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 1 Matlab与C混合编程的方法研究与实现 摘要:文章探讨了MATLAB与VC++的优缺点,介绍了VC++与Matlab混合编程的几种方法。通过二者的结合,既有效地利用了MATLAB强大的数值计算能力和众多的函数,大大减少程序设计的工作量,又继承了VC++良好的程序界面,证明是一种很好的程序设计方法。具体说明了如何应用Matlab引擎实现混合编程以及如何利用MATCOM进行MATLAB和VC++混合编程,并将两种方法用于数字图像处理。 关键词:MATLAB;VC++;MATCOM;引擎;混合编程;图像处理 一、引言 1、数字图像处理简介: 图像技术由高到低分为三个层次:图像处理、图像分析和图像理解。图像处理是比较底层的操作,它主要在图像像素级上进行处理,处理的数据量非常大。数字图像处理最基本的目的就是改善图像,主要是按需要进行适当的变换突出某些有用的信息,去除或消弱无用的信息,如改变图像的对比度,去除噪声或强调边缘的处理等,其基本方法有:直方图修正、灰度变换、图像的频域特性、图像平滑、图像锐化等。 直方图是图像的重要统计特征,是表示数字图像中每一灰度级与该灰度级出现的频率数间的统计关系。直方图能给出该图像的大致描述,如灰度范围、灰度级的分布、整幅图像的平均亮度等,但它不能完整地描述一幅图像。通常用横坐标表示灰度级,纵坐标表示频数。 通常一幅均匀量化的自然图像由于其灰度直方图分布集中在较窄的低值灰度区间,引起图像的细节看不清楚,为使图像变得清晰,我们可以通过变换使图像的灰度范围拉开或使灰度分布在动态范围内趋于均匀化,从而增加反差,使图像的细节清晰,达到图像增强的目的。 灰度变换是图像增强的一种重要手段,它可以使图像动态范围加大,使图像对比度扩展,图像更加清晰,特征更加明显。灰度变换可分为线性、分段线性、非线性以及其他的灰度变换。线性灰度变换实际上使曝光不充分的图像中黑的部分更黑,白的部分更白,从而提高对比度。 图像中的边缘或者线条部分与图像频谱中的高频成分相对应,因此采用高通滤波的方法让高频分量顺利通过,使低频分量受到抑制,就可以增强高频的成分,使图像的边缘或者线条变得清晰,实现图像的锐化。 图像的平滑主要目的是减少图像噪声,减少噪声的方法可以在空间域或者在频率域处理,即:在空间域中进行时,其基本方法是求像素的平均值或者中值;在频率域中则运用低通滤波技术。低通滤波,图像的噪声频谱一般位于空间频率较高的区域,而图像本身的频率分量则处于空间频率较低的区域内,因此可以通过低通滤波的方法,使高频成分受到抑制,而使低频成分顺利通过,从而实现图像的平滑。 2、混合编程在图像处理方面的应用 Matlab是一种应用广泛的编程工具,语法简单函数丰富,具有优秀的图形显示功能及强大的人机交互能力。Matlab在图象处理方面更有着明显的优势:(a)它具有强大的矩阵运算功能,在进行一些简单的图象变换时可以避免很多烦琐的计算;(b)图形显示方便,有专门的灰度及彩色图象显示函数,甚至在调试过程中也能随时观察图形的变化;(c)带有丰富的图象处理函数库,如wavelet toolbox、image processing toolbox 等。然而由于图象处理的针对性很强,而被处理的对象又千变万化,不可避免地在用Matlab 编程时会遇到一些其自带函数无法处理的问题,只能自己编程解决。这时便会遇到运算速度慢的问题,这是因为Matlab 是一种解释性的编程语言,对程序读一句执行一句,虽然可以很方便地实现编程过程中的交互,但在执行时速度慢也根源于此,这一问题在程序做循环运算时显得尤为严重。 C是Windows平台下主要的应用程序开发环境之一,它是一种面向对象的可视化编程语言,广泛用于图形与图像、网络与通信以及控制等领域。能方便实现软件开发,开发的程序文件小、执行速度快、实时性好,开发的系统具有接口友好、易维护和升级等优点。它已成为操作系统、设备驱动程序和系统级平台类软件的最佳开发工具。但缺乏对大量数据处理与分析、数据可视化方面的能力。在工程计算方面,和Matlab相比编程显得复杂的多。 如上所述,Matlab的优点在于图像处理方面,而C的优点在于可视化界面的编程。由于C与Matlab的各自特点,因此在Windows环境下实现两者的混合编程将是一种极为强大的编程手段,更加有效地发挥C与Matlab各自的优点,提高软件开发效率,使所开发的软件具有更高的性能,更大的应用范围,也可以为科学研究和工程技术提供更强的技术支持。 本文将通过Matlab与C的混合编程实现上述数字图像处理的基本工作。 二、几种混合编程方式简介 Matlab和C混合编程的思路:在C的集成开发环境下使用Matlab,可以利用Matlab的数学库将Matlab的程序编译为C编译器所能识别的源代

文档评论(0)

好老师 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档