1、1图像处理技术的综合应用系 ( 院 ): 机械与控制工程学院 课 题 名 称 : 图像处理技术的综合应用专业(方向): 自动化 班 级: 08-1 学号: 3080419131学 生: 刘龙生 指 导 教 师 : 李新 提 交 日 期 : 2011 年 6 月 29 日 2目 录摘 要 3ABSTRACT 3引言 31 图像增强处理技术 31.1 灰度变换31.2 直方图均衡化41.3 局部平滑61.4 中值滤波 81.5 频率域平滑 91.6 频率域锐化 102 综合运用 MATLAB 工具箱实现图像处理的 GUI 程序设计 112.1 图像的读取和保存 112.2 设计直方图统计和直方图均
2、衡 132.4 设计滤波算法,实现去噪并显示结果 143. 实现图像的压缩154.结论165.参考文献173摘 要在实际的生产、生活中,人们直接获得的原始图像并不能直接用到生产生活中。因为,原始图像在获取和传输中会产生各种噪声,造成图形的对比度不够,图像模糊、对所需要的信息,如边缘或线状地物不够突出等影响。针对上述问题,可采用专业的图像处理软件进行处理。本文采用在 MATLAB 中,根据图像中存在的具体问题,利用MATLAB 自带函数以及用户自己编写的 M 函数解决具体问题。给出了用 MATLAB 进行灰度增强、直方图均衡化、平滑、锐化等操作及具体示例。通过这几个实验,取得了较为理想的效果,达
3、到了图像增强的目的。关键词 图像增强;直方图;平滑;锐化Abstract :In the actual production and daily life, people can not directly apply the original image to the production and life. This is because the original image will have all kinds of noise in the process of accessing and transmission. The noise cause the conlast not ab
4、ove-mentioned, we can use professional image processing software to process. But, the paper using MATLAB, according to specific issues, use MATLAB built-in function and the users own M function to solve specific problem. Specifically, the paper gives a demonstration of using MATLAB to complete gray
5、enhancement, histogram enhancement, smooth, sharpening, and operating and specific examples. These experiments obtain quite ideal results, making the image enhancementKey words: image enhancement; histogram ;smooth, sharpening引言在社会生产和科研活动中,人们频繁地接触图像,如照片、图画、学报、医学 X 光图片和卫星遥感图像等。图像是人们认识客观世界的重要知识来源。人类感知
6、的外界信息 80%以上是通过视觉得到的,但是,人们在获得原始图像后大多并不能直接应用,而是根据各个领域的需要,有目的的突出图像中某些信息,同时削去或者去除某些不需要的信息。如卫星遥感图像,我们要提取图像中地物的边缘信息,就需要突出边缘信息;医学 X 光图片,为了更清楚的现实病患,就需要通过图像处理来突出这方面的信息等等,因此,图像的处理已经涉及人类生活的方方面面。图像增强是数字图像处理的基本内容之一,就是只按特定的需要突出一副图像中的某些信息,同时削弱或者去除某些不需要的信息的处理方法。其主要目的是使用后的图像增强处理主要包括直方图修改处理、图像平滑处理和图像锐化处理等。在实际应用中,可以采用
7、单一方法进行处理,也可以采用几种方法联合处理,以达到预期效果。4主要内容1、 图像增强处理技术1.1 灰度变换在图像采集过程中,由于扫描系统或者光电转换系统多方面的原因,常出现图像不均匀,对比度不足等弊端,是人眼在观看图像时视觉效果很差。灰度变换就是在图像采集系统中对图像像素经行修正,是整幅图像成像均匀。灰度变换可使图像动态范围增大,图像对比度扩展,图像变清晰,特征明显,是图像增强的重要手段之一。在 MATLAB 图像处理中工具箱中用函数 imread 进行灰度线性变换增强。下面举例说明通过灰度级线性变换实现图像增强MATLAB 代码如下I=imread(IMG_0379.JPG);I=rgb
8、2gray(I);k=16;H=histeq(I,k);figure,subplot(2,2,1),imshow(I,)subplot(2,2,2),imshow(H,),hold onsubplot(2,2,3),hist(double(I),16),subplot(2,2,4),hist(double(H),16)结果图如下实验原图5实验效果图1.2 对比度增强:程序代码如下:I = imread(IMG_0379.JPG);J = imadjust(I,0.3 0.7,);imshow(I);figure, imshow(J);效果图如右所示6增强对比度后图像如下所示1.3 直方图均衡化
9、图像的直方图是图像的重要统计特征,它可以认为是图像灰度密度函数的近似。直方图虽然不能直接反映出图像内容,但对它进行分析可以得出图像的一些有用特征,这些特征能反映出图像的特点。当图像对比度较小时,它的灰度直方图只在灰度轴上较小的一段区间上非零,较暗的图像由于较多的像素灰度值低,因此它的直方图的主体出现在低值灰度区间上,其在高值灰度区间上的幅度较小或为零,而较亮的图像情况正好相反。通常一幅均匀量化的自然图像的灰度直方图在低值灰度区间上频率较大,这样的图像较暗区域中的细节常常看不清楚。为使图像变清晰,可以通过变换使图像的灰度动态范围变大,并且让灰度频率较小的灰度级经变换后,其频率变得大一些,使变换后
10、的图像灰度直方图在较大的动态范围内趋于均化。事实证明,通过图像直方图修改进行图像增强是一种有效的方法。均匀量化的自然图像的灰度直方图通常在低值灰度区间上频率较大,使 得图像中较暗区域中的细节常常看不清楚。为了使图像清晰,可将图像的灰度范围拉开,并且让灰度频率较小的灰度级变大,即让灰度直方图在较大的动态范围内趋于一致。以下举例说明图像直方图均衡化MATLAB 代码如下:I=imread(IMG_0379.JPG);J=imadjust(I,0.3 0.7,);subplot(1,2,1),imshow(I)subplot(1,2,2),imshow(J)figure,subplot(1,2,1)
11、,imhist(I)subplot(1,2,2),imhist(J)function rst=hispic(fn)x=imread(fn);7r=x(:,:,1);g=x(:,:,2);b=x(:,:,3);r=histeq(r);g=histeq(g);b=histeq(b);ly,lx=size(r);rst=uint8(zeros(ly,lx,3);for i=1:lyfor j=1:lxrst(i,j,1)=r(i,j);rst(i,j,2)=g(i,j);rst(i,j,3)=b(i,j);end;end;figure(3),imshow(rst);运行结果图如下上图为实验原图(左)
12、及增强后的图像(右)1.4 局部平滑 局部平滑法是一种直接在空间域上进行平滑处理的技术。假设图像是由许多灰度恒定的小块组成,相邻像素间存在很高的空间相关性,而噪声则统计独立。因此,可在邻域内各像素的灰度平均值代替该像素原来的灰度值,实现图像的平滑。以下举例说明图像局部平滑MATLAB 代码如下img=rgb2gray(imread(IMG_0379.JPG);figure;imshow(img);img_noise=double(imnoise(img,salt figure,imshow(img_noise,);img_smoothed=imfilter(img_noise,fspecial
13、(average,5);figure;imshow(img_smoothed,);8实验结果图如下:(a) 实验原图(b)对(a)加椒盐噪声的图像9(c)5X5 邻域平滑1.5 中值滤波非线性滤波技术一般利用原始信号与噪声信号特有的统计特性进行去噪,现有的非线性滤波方法有以中值滤波为代表的传统非线性滤波方法和以形态滤波为代表的新型滤波方法。中值滤波是由 Turky 在 1971 年提出的,它最初主要用于时间序列分析,后来用于图像处理,在去噪复原中取得较好的效果。中值滤波是基于次序统计完成信号恢复的一种典型非线性滤波器,其基本原理是将数字图像中一点的值用该点的一个邻域中各点值的中值代替。 中值滤
14、波采用非线性技术,在像素点邻域里用取中值代替了取平均值,不会降低图像中的高频信号,在消除噪声的同时很好地保持了图像的边缘特征。中值滤波在一定的条件下可以克服线性滤波如最小均方滤波,均值滤波等带来的图像细节模糊的缺点,而且对滤除脉冲干扰及图像扫描噪声最为有效。由于在实际运算中不需要图像的统计特性,因此带来不少方便。但是对于一些细节多,特别是点、线、尖顶细节多的图像不宜采用中值滤波。以下是中值滤波的 MATLAB 代码I=imread(IMG_0379.JPG);J1=imnoise(I,gaussian,0,0.02);J2=imnoise(I,salt subplot(2,2,1),imsho
15、w(I)subplot(2,2,2),imshow(J1)10subplot(2,2,3),imshow(J2)subplot(2,2,4),imshow(J3)function rst=hispic2(fn)x=imread(fn);r=x(:,:,1);g=x(:,:,2);b=x(:,:,3);r=medfilt2(r);g=medfilt2(g);b=medfilt2(b);ly,lx=size(r);rst=uint8(zeros(ly,lx,3);for i=1:lyfor j=1:lxrst(i,j,1)=r(i,j);rst(i,j,2)=g(i,j);rst(i,j,3)=b
16、(i,j);end;end;运行结果如下图111.6 频率域平滑图像空间的线性邻域卷积实际上是图像经过滤波器对信号频率成分的滤波,这种功能也可以在变换中实现,即把原始图像进行正变换,设计一个滤波器用点操作的方法加工频谱数据(变换系数) ,然后再进行反变换,即完成处理工作。用 h=fspecial(average) 得到的 h 为 33 的邻域平均模板,然后用 h 来对图像 IMG_0379.JPG 进行平滑处理。示例程序如下:x=imread(IMG_0379.JPG);h=fspecial(average) /33 的邻域平均模板(77 的邻域平均模板 h=fspecial(average,
17、7,7)y=imfilter(x,h);subplot(1,2,1)imshow(x)subplot(1,2,2)imshow(y)运行结果图如下所示:上图为对原图(左)进行频率域平滑后的效果图(右)1.7 频率域锐化图像的边缘、细节主要位于高频部分,而图像模糊是由于高频成分比较弱产生的。频率域锐化就是为了消除模糊,突出边缘。因此采用高通滤波器让高频滤波器让高频成分通过,使低频成分削弱,再经过傅里叶变换得到边缘锐化的图像。线性锐化滤波器的模板为 h= -1 -1 -1; -1 8 -1;-1 -1 -1; 用该模板对图像 IMG_0379.JPG 进行锐化处理;示例程序如下:x=imread(
18、IMG_0379.JPG);h= -1 -1 -1; -1 8 -1; -1 -1 -1 y=imfilter(x,h);subplot(1,2,1)imshow(x)subplot(1,2,2)imshow(y)12结果图如下图所示上图为对原图(左)进行频率域锐化后的效果图(右)2 综合运用 MATLAB 工具箱实现图像处理的 GUI 程序设计:2.1 图像的读取和保存双击打开 MATLAB 7.0FileNewGUI单击 ,调整 axes1 大小单击 OK,调整按钮大小和颜色,修改名称再建 axes2单击 OK,调整按钮大小和颜色,修改名称保存ViewM-file Edit写程序在 fun
19、ction open_Callback(hObject, eventdata, handles)后面输入如下程序name,path=uigetfile(*.*,);file=path,name;axes(handles.axes1);x=imread(file);%读取图像handles.img=x;guidata(hObject, handles);imshow(x);%显示图像title(原始图);axes(handles.axes2);imshow(x);title(修改图);效果图如下13在 function outputs_Callback(hObject, eventdata, h
20、andles)后面输入如下程序sfilename ,sfilepath=uiputfile(*.jpg;*.bmp;*.tif;*.*,保存图像文件,IMG_0379.JPG.jpg);if isequal(sfilename,sfilepath,0,0)sfilefullname=sfilepath ,sfilename;imwrite(handles.img,sfilefullname);elsemsgbox(你按了取消键,保存失败);end2.2 设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。在 function liangdu_Callba
21、ck(hObject, eventdata, handles) 后面输入如下程序axes(handles.axes2);x=(handles.img);y=imadjust(x,0.15 0.9, 0 1); %增亮图像imshow(y);title(亮度)14效果图如下对比度global Taxes(handles.axes2);case增强T=getimage;prompt=输入参数:;defans=1;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);f=immultiply(handles.img,p1); imshow(f);handl
22、es.img=f;guidata(hObject,handles);case减弱T=getimage;prompt=输入参数:;15defans=1;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);f=imdivide(handles.img,p1); imshow(f);handles.img=f;guidata(hObject,handles);end在 function huidu_Callback(hObject, eventdata, handles) 后面输入如下程序axes(handles.axes2);x=rgb2gray(ha
23、ndles.img); %RGB 图像转换为灰度图像imshow(x);title(灰度)16效果图如下:2.3 图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。在 function zhifangtu_Callback(hObject, eventdata, handles) 后面输入如下程序set(handles.axes2,HandleVisibility,ON);axes(handles.axes2);x=imhist(handles.img); %直方图统计x1=x(1:10:256);horz=1:10:256;bar(horz,x1);%axis(0 25
24、5 0 150000);set(handles.axes2,xtick,0:50:255);%set(handles.axes2,ytick,0:2000:15000);set(handles.axes2,HandleVisibility,OFF);效果图如下17在 function junheng_Callback(hObject, eventdata, handles) 后面输入如下程序set(handles.axes2,HandleVisibility,ON);axes(handles.axes2);h=histeq(handles.img); %直方图均衡imshow(h);%set(
25、handles.axes2,ytick,0:2000:15000);set(handles.axes2,HandleVisibility,OFF);效果图如下182.4 设计滤波算法,实现去噪并显示结果 在 function salt_Callback(hObject, eventdata, handles) 后面输入如下程序axes(handles.axes2);x=(handles.img);y=imnoise(x,salt %加椒盐噪声imshow(y);imwrite(y,salt.jpg);title(加椒盐噪声)在 function medfilt_Callback(hObject
26、, eventdata, handles) 后面输入如下程序axes(handles.axes2);x=(handles.img);y=imnoise(x,salt %加椒盐噪声z=medfilt2(y,5 5,symmetric); %中值滤波imshow(z);imwrite(z,medfilt.jpg);19title(中值滤波);3. 实现图像的压缩,并显示压缩前和压缩后的效果,设计图形用户界面,让用户能够对图像进行任意的压缩比调整。图像压缩就是减少表示数字图像时需要的数据量。是指较少的比特有损或无损地表示原来像素矩阵的技术,也称图像编码。图像数据之所以可以压缩,主要因为一般原始图像数
27、据是高度相关的,都含有大量冗余信息。图像压缩编码的目的就是消除各种冗余,并在给定的畸形下用尽量少比特数来表征和重建图像,使它符合预订应用的要求。程序代码如下fi=imread(IMG_0379.JPG);imwrite(fi,IMG_03791.JPG);info1=dir(IMG_0379.JPG);b1=info1.bytes;info2=dir(IMG_03791.JPG);b2=info2.bytes;ratio=b1/b2;imshow(IMG_0379.JPG);figure;imshow(IMG_03791.JPG);运行效果图如下20压缩前压缩后214.结论图像处理内容涉及光学
28、、微电子学、信息学、统计学、数学、计算机科学等领域,是一门综合性很强的交叉学科,其中任何一门学科的发展都将推动图像处理的进一步发展。图像增强是对图像的低层次处理,处于图像处理的预处理阶段。它是图像处理的一个重要环节,在整个图像处理过程中起着承前启后的重要作用,为后续处理阶段做准备,对图像高层次处理的成败至关重要。其目的就是为了改善图像的质量和视觉效果,或将图像转换成更适合于人眼观察或机器分析识别的形式,以便从图像中获取更加有用的信息。由于图像增强与感兴的趣物体特性、观察者的习惯和处理目的密切相关,带有很强的针对性。因此,图像增强算法的应用也是有针对性的,尽管增强处理方法多种多样,但并不存在一种
29、通用的、适应各种应用场合的增强算法。直方图均衡化处理方法从实验效果看还是很不错的,从实现算法上也可以看出其优点主要在于能自动增强整幅图像的对比度,但具体的增强效果也因此不易控制,只能得到全局均衡化处理的直方图。在科研和工程应用中往往要根据不同的要求得到特定形状的直方图分布以有选择的对某灰度范围进行局部的对比度增强,此时可以采用对直方图的规定化处理,通过选择合适的规定化函数取得期望的效果。在数字图像中往往存在各种各样的噪声,这些噪声可能是在传输中产生的,也可能是在量化等处理过程中产生的,如何有效地抑制噪声并保护图像的细节是图像处理中很重要的问题. 中值滤波是一种非线性滤波方式,其基本原理是将图像
30、中一个点的值,用其邻域的几个点值的中值来代替。本文围绕图像增强算法而展开,在阐明图像增强处理基本方法,如直方图修正、噪声去除、频域滤波增强和彩色增强的基础上,就几种有代表性的图像增强算法进行了研究、比较,分析了各自的优缺点并指明了其最佳适用场景。数字图像的增强是图像处理中的一个重要研究内容之一,是图像处理的一项基本技术。图像增强是指按特定的需要突出一幅图像的某些信息,同时,削弱或除去某些不需要的信息的处理方法。通过对本课题的设计,能从以上几个方面来认识数字图像的有关知识,深刻理解数字图像的增强方法,特别是直方图均衡化方法的理论知识及其相关应用。同时,能使本人掌握进行科学研究的基本方法和步骤,进
31、一步熟悉软件开发工具的使用参考文献:1 赵春燕,郑永果,王向葵.基于直方图的图像模糊增强算法J.计算机工程,2005,31(12):185-187.2 赵立兴,唐英干,刘冬,关新平.基于直方图指数平滑的模糊散度图像分割J.系统工程与电子技术,2005,27(7):1182-11853 欧阳诚梓、李勇等,基于小波变换与中值滤波相结合的图像去噪处理 J.中原工学院学报,2006.14 周航慈,铙运涛.单片机程序设计基础M.北京:航空航天大学出版社,19955 闫胜利.DS12887 时钟芯片及其在 LED 中的应用J.电子产品世界,2001,4:53-566 郭文强. 数字图像处理M.西安:西安电子科技大学出版社,2009.7 余松煜. 数字图像处理M.上海:上海交通大学出版社,2007.8 百度百科.http:/