您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 纺织服装 > MATLAB在图像处理中的应用
MATLAB应用级范围___机电114班肖作硕一:MATLAB是由美国MathWorks公司推出的用于数值计算和图形处理的软件。MATLAB中除主包外,还包含许多功能各异的工具箱,用于解决各个领域的特定问题。它的工具箱主要有通信、控制系统、滤波器设计、图像处理、非线性控制设计、系统识别、神经网络、最优化、模糊逻辑、信号处理、鲁棒控制、统计等。借助于这些工具箱,用户可以非常方便地进行分析、计算及设计工作。不仅如此,MATLAB还具有语法简单、易学易用的特点;它丰富的函数使开发者无需重复编程,只要简单地调用和使用,往往在C语言里需要几十甚至上百行的语句在MATLAB里只用一两个函数就可代替。为此,MATLAB己经成为目前使用最为广泛的工程应用软件。二:应用范围:MATLAB产品族可以用来进行以下各种工作:●数值分析●数值和符号计算●工程与科学绘图●控制系统的设计与仿真●数字图像处理技术●数字信号处理技术●通讯系统设计与仿真●MATLAB在通讯系统设计与仿真的应用●财务与金融工程●管理与调度优化计算(运筹学)MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。三:MATLAB图像处理应用MATLAB的图像处理工具箱功能十分强大,支持的图像文件格式丰富,如*.BMP、*.JPEG、*.GIF、*.TIFF、*.PCX、*.HDF、*.XWD、*.PNG等。MATLAB6.5提供了15类图像处理函数,涵盖了包括近期研究成果在内的几乎所有的图像处理方法。这些函数按其功能可分为:图像显示;图像文件I/O;几何操作;像素和统计处理;图像分析;图像增强;线性滤波;线性二元滤波设计;图像变换;邻域和块处理;二进制图像操作;区域处理;颜色映像处理;颜色空间变换;图像类型和类型转换。利用这些图像处理工具箱,并结合其强大的数据处理能力,我们可不必关心图像文件的格式、读写、显示等细节,而把精力集中在算法研究上,大大提高了工作效率。而且,在测试这些算法时既可方便地得到统计数据,同时又可得到直观图示。下面将通过一些例子来简要介绍利用MATLAB图像处理工具箱进行图像处理的方法。四:应用实例:用直方图均衡实现图像增强图像增强的目的是突出图像中有用的信息,削弱或消除不需要的信息。直方图均衡化是图像增强的一种常用方法,它能使图像的灰度分布均匀,对比度增大,细节更清晰。它的基本思想是把原始图像的直方图变换成均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到了增强图像整体对比度的效果。下面是用MATLAB实现的源程序及注解,输出结果如图1:%直方图均衡化I=imread('girl.tif');%读入图像文件J=histeq(I,64);%对图像进行直方图均衡化,指定均衡化后的灰度级数为64subplot(2,2,1),imshow(I),title('原始图像');%显示原始图像subplot(2,2,2),imhist(I,64),title('原始直方图');%显示原始直方图subplot(2,2,3),imshow(J),title('直方图均衡化后的图像');%显示直方图均衡化后的图像subplot(2,2,4),imhist(J,64),title('直方图均衡化后的直方图');%显示直方图均衡化后的直方图通过比较可看出均衡化后的图像变得清晰,其直方图形状也比原直方图的形状更理想。3.2边缘检测边缘是图像的最基本的特征,边缘中包含着有价值的目标边界信息,这些信息可以用作图像分析、目标识别。在细胞边缘检测计算过程中,为了有效地抑制噪声的影响,同时能够客观、正确地选取边缘检测的门限值,可以先通过迭代算法求得最佳阈值,把图像进行分割为背景和目标两部分;再运用数学形态学的腐蚀算法,挖去细胞内部像素点;最后剩余部分图像就是细胞的边缘,从而实现了细胞的边缘检测。这样通过对各像素点自身灰度值的分析和计算,判断该点是否为边缘点,避免了在边缘检测的数学计算过程中,使噪声干扰的影响进一步扩大,损坏细胞边缘图像。通过阈值分割处理,既增强了图像的目标与背景的对比,增强了边缘,又能准确提取细胞区域。边缘检测的代码如下所示,输出结果见图2::blood=imread('blood1.bmp');%读入图像文件[x,y]=size(blood);%求出图像大小b=double(blood);N=sqrt(100)*randn(x,y);%生成方差为10的白噪声I=b+N;%产生噪声干扰图像fori=1:x%实际图像的灰度为0~255forj=1:yif(I(i,j)255)I(i,j)=255;endif(I(i,j)0)I(i,j)=0;endendendz0=max(max(I));%求出图像中最大的灰度z1=min(min(I));%求出图像中最小的灰度T=(z0+z1)/2;TT=0;S0=0;n0=0;S1=0;n1=0;allow=0.5;%新旧阈值的允许接近程度d=abs(T-TT);count=0;%记录几次循环while(d=allow)%迭代最佳阈值分割算法count=count+1;fori=1:xforj=1:yif(I(i,j)=T)S0=S0+I(i,j);n0=n0+1;endif(I(i,j)T)S1=S1+I(i,j);n1=n1+1;endend
本文标题:MATLAB在图像处理中的应用
链接地址:https://www.777doc.com/doc-2881962 .html