福建电脑2011年第11期
MATLAB图像处理的几个应用实例
王秋雨
(河南大学计算机与信息工程学院河南开封475004)
要】:MATLAB处理矩阵之类的问题具有明显优势,而数字图像以矩阵形式存储于计算机中,因
此MATLAB在图像处理中得到广泛应用。本文通过实例阐述MATLAB在图像处理中的应用,以图像增强、图像压缩、图像去噪为例,给出了实现图像处理的程序代码和图像处理前后的可视化效果对比。
【关键词】:图像增强;图像压缩;图像去噪
【摘
1、引言
图像是人类赖以获取信息的最重要来源之一。图像技术与计算机技术不断融合,出现了一系列图像处理软件,其中最典型的是MATLAB,该软件为图像技术的发展提供了强大支持[1,2]。MATLAB(MatrixLaborato-ry)是矩阵实验室的简称,最基本的数据结构是数组,数字图像用数组(矩阵)存储,矩阵中的一个元素对应于图像的一个像素,这意味着MATLAB矩阵运算功能可以应用于图像处理[3]。MATLAB已成为国际公认的最优秀的科技应用软件之一,具有编程简单、数据可视化功能强、可操作性强等特点,而且配有功能强大、专业函数丰富的图像处理工具箱,是图像处理的一个重要软件工具。
数字图像处理(DigitalImageProcessing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术[1,2]。一般来讲,图像处理主要包括三个方面:
⑴提高图像的视感质量,如改变图像亮度和彩色,增强或抑制某些成分,对图像进行几何变换等,以改善图像的质量。
⑵提取图像中所包含的某些特征或特殊信息,所提取出来的特征或信息往往为计算机分析图像提供便利。提取的特征包括很多方面,如频域特征、灰度特征、颜色特征、边界特征、区域特征、文理特征、形状特征、拓扑特征和关系结构等。
⑶图像数据的变换、编码和压缩,以便于图像的存储和传输。
数字图像处理的过程其实就是对图像的一种运算过程,从技术上来说,数字图像处理分为空间域和频率域处理。本文通过几个应用实例,验证了MATLAB图像处理所得到的效果。2、图像增强的应用
如果不考虑图像降质,仅突出图像中所感兴趣的部分,可以强化图像的某些分量。例如,强化图像高频
基金项目:国家自然科学基金(11001075).
分量,可使图像中物体轮廓清晰、细节明显;强化低频分量可以减少图像中噪声的影响。图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立降质模型,再采用某种滤波方法,恢复或重建原来的图像[4]。
小波分析方法在图像处理方面具有很多优点。经二维小波分解后,图像的轮廓主要体现在低频部分,而细节部分则体现在高频部分。因此,通过对低频分解系数进行增强处理,对高频分解系数进行衰减处理,即可以达到图像增强的作用。MATLAB用于图像增强的一个实例如下:
functionexam1()I=imread('…\\lena.bmp');subplot(1,2,1);imshow(I)colormap(gray);title('原始图像')[a,b]=wavedec2(I,2,'sym4');len=length(a);fori=1:lenif(a(i)>300)a(i)=2*a(i);else
a(i)=0.5*a(i);endend
nx=waverec2(a,b,'sym4');subplot(1,2,2);image(nx);title('增强图像')
图1是一幅图像增强前后的可视化效果对比,经过MATLAB的图像增强处理,图像轮廓更加清晰。在某些情况下,采用MATLAB对图像进行增加,可以得到实际应用效果。
2011年第11期3、图像压缩的应用
福建电脑
I=imread('…\\lena.bmp');J=imnoise(I,'gaussian',0,0.03);
subplot(2,2,1),imshow(I),title('原图像');subplot(2,2,2),imshow(J),title('加噪声后图像');K=zeros(512,512);fori=1:100
J=imnoise(I,'gaussian',0,0.03);J1=im2double(J);K=K+J1;endK=K/100;
subplot(2,2,3),imshow(K,M),title('相加求平均去噪后的图像');
7
图像数据的特点之一是信息量大。一幅512×512,灰度等级为8b的图像,其数据量为256KB。在现代通信中,图片传输成了一个重要的研究课题,如何尽可能减少数据的传输量,并保证图像的质量,是目前人们面对的一大难题。采用编码压缩技术,可以减少数据的传输量、提高通信速度。
在某些情况下,如果对图像的要求不高,可以对图像进行有目的的压缩。作为一个应用实例,可用MATLAB把一个512×512的图像压缩为256×256的图像。图像压缩的实现代码如下:
Functionexam2()
I=imread('…\\lena.bmp');I=double(I)/255;[m,n]=size(I);figure(1)imshow(I)
title(sprintf('原始图片:%4d*%4d',size(I)));A=[];B=[];fori=1:2:n-1A=[A,(I(:,i)+I(:,i+1))/2];end
fori=1:2:m-1
B=[B;(A(i,:)+A(i+1,:))/2];endfigure(2)imshow(B)
title(sprintf('压缩图片:%4d*%4d',size(B)));
图3是一幅图像去噪前后的可视化效果对比。原图是一幅清晰的图像,添加高斯噪声后,发现图像出现了很多小斑点,视觉效果很差。经过MATLAB去噪处理,图像变得清晰了。
5、结论
图像处理技术在理论和实践上都存在很大的发展空间,其应用领域必将越来越广泛。本文介绍了MATLAB的图像处理功能,以图像增强、图像压缩和图像去噪作为应用实例,给出了MATLAB实现的程序代码,同时比较了图像处理前后的效果,为今后进一步研究打下了基础。
参考文献:
[1]冈萨雷斯.数字图像处理(第二版)[M].北京:电子工业出版社,2009.8
[2]蓝章礼.数值图像处理与数值通信[M].北京:清华大学出版社,2009.3
[3]曹弋.MATLAB教程及实例[M].北京:机械工业出版社,2009.6
[4]奉前清,杨宗凯.实用小波分析[M].西安:西安电子科技大学出版社,2000.
[5]Yun-HaiXiao,Hui-NaSong.AnInexactAlternatingDirectionsAlgorithmforConstrainedTotalVariationRegularizedCompres-siveSensingProblems[J].JournalofMathematicalImagingandVi-sion.DOI:10.1007/s10851-011-0314-y
[6]Yun-HaiXiao,Qiu-YuWang.Non-smoothequationsbasedmethodfor?1-normproblemswithapplicationstocompressedsensing[J].NonlinearAnalysis:Theory,Methods&Applications.Vol-ume74,Issue11,July2011,pages3570-3577.
图2是一幅图像压缩前后的可视化效果对比,经过MATLAB压缩处理,仅仅丢失了图像的细节,图像的视觉效果基本不变,但数据量由原来的256KB减少为64KB。
4、图像去噪的应用
图像噪声会妨碍人们对图像的理解,图像噪声的来源主要是图像在获取、存储或传输时发生的。图像去噪也是图像处理的一个关键内容[5,6]。下面一个例子是将刚刚显示的加有噪声的图像进行相加求平均以消除图像的噪声。给图像加的均值为0、方差为0.03的高斯噪声,将图像相加一百遍后,再求其平均值。MATLAB的实现程序如下:
因篇幅问题不能全部显示,请点此查看更多更全内容