基于MATLAB的图像增强处理

基于MATLAB的图像增强处理
基于MATLAB的图像增强处理

2011 - 2012学年第1 学期

专业综合课程设计报告

题目:基于MATLAB的图像增强处理

专业:通信工程

班级: 08通信(本)

姓名:

指导教师:老师

成绩:

电气工程系

2011年11月15日

课程设计任务书

学生班级:08通信工程学生姓名:学号:

设计名称:基于MATLAB的图像增强处理

起止日期: 2011-11-13——11—17 指导教师:师

内容摘要

数字图像处理是指将图像信号转换成数字格式并利用计算机对其进行处理的过程。图像

增强是数字图像处理的过程中经常采用的一种方法,它对提高图像质量起着重要的作用。本文先对图像增强的原理进行概述,然后对图像增强的方法分类并给出直方图增强、对比度增强、平滑和锐化等几种常用的增强方法的理论基础,通过Matlab实验得出的实际处理效果来对比各种算法的优缺点,讨论不同的增强算法的技术要点,并对其图像增强方法进行性能评价。

目录

设计要求 (1)

内容摘要 (2)

目录 (3)

第一章MATLAB的简介 (4)

1.1MATLAB的主要功能 (4)

第二章MATLAB图像增强概述 (4)

2.1数字增强技术概述 (4)

2.2数字图像的表示 (5)

第三章直方图均衡化 (6)

3.1图像的灰度 (6)

3.2灰度直方图 (8)

3.3直方图均衡化 (9)

第四章图像二值化 (10)

4.1图像二值化 (12)

第五章对比度增强 (12)

5.1灰度调整 (12)

5.2对比扩展法 (12)

5.3对数变换 (13)

第六章滤波 (13)

6.1平滑滤波 (14)

6.2线性滤波 (14)

6.3非线性率 (14)

6.4二维中值滤波 (15)

6.5高通滤波 (15)

第七章锐化 (15)

第八章参考文献 (16)

第九章自我评价 (17)

1. Matlab的简介

1.1MA TLAB主要功能

MATLAB是建立在向量、数组和矩阵基础上的一种分析和仿真工具软件包,包含各种能够进行常规运算的“工具箱”,如常用的矩阵代数运算、数组运算、方程求根、优化计算及

函数求导积分符号运算等;同时还提供了编程计算的编程特性,通过编程可以解决一些复杂的工程问题;也可绘制二维、三维图形,输出结果可视化。目前,已成为工程领域中较常用的软件工具包之一。

2.MATLAB 的主要功能

2.1数字增强技术概述

图像增强是按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些信息使得图像更加实用。图像增强技术主要包含直方图修改处理、图像平滑处理、图像尖锐化处理等。 图像增强技术主要包括:直方图修改处理,图像平滑处理,图像尖锐化处理,彩色图像处理。从纯技术上讲主要有两类:频域处理法和空域处理法。

频域处理法主要是卷积定理,采用修改图像傅立叶变换的方法实现对图像的增强处理技术;空域处理法:是直接对图像中的像素进行处理,基本上是以灰度映射变换为基础的。 2.2数字图像的表示

图像并不能直接用计算机来处理,处理前必须先转化成数字图像。由于从外界得到的图像多是二维(2-D )的,一幅图像可以用一个2-D 数组),(y x f 表示。这里x 和y 表示二维空间XY 中一个坐标点的位置,而f 则代表图像在点),(y x 的某种性质数值。为了能够用计算机对图像进行处理,需要坐标空间和性质空间都离散化。

3.直方图的均衡化

3.1图像的灰度

常用的图像一般是灰度图,这时f 表示灰度值,反映了图像上对应点的亮度。亮度是观察者对所看到的物体表面反射光强的量度。作为图像灰度的量度函数),(y x f 应大于零。人们日常看到的图像一般是从目标上反射出来的光组成的,所以),(y x f 可看成由两部分构成:入射到可见场景上光的量;场景中目标对反射光反射的比率。确切地说它们分别称为照度成分),(y x i 和反射成分),(y x r 。),(y x f 与),(y x i 和),(y x r 都成正比,可表示成),(y x f =),(y x i ×),(y x r 。

3.2灰度直方图

灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像增强。 程序如下: %灰度直方图

I=imread('D:\image\rice.bmp');%读取图像 subplot(2,1,1);

Imshow(I);%显示图像 title('(a)原图'); subplot(2,1,2);

imhist(I);%绘制图像的灰度直方图 title('(b)原图的灰度直方图');

图4.1

3.3直方图均衡化

直方图均衡化过程如下:

(1)计算原图像的灰度直方图)(K r r P ;

(2)计算原图像的灰度累积分布函数k s ,进一步求出灰度变换表; (3)根据灰度变换表,将原图像各灰度级映射为新的灰度级。 灰度直方图均衡化程序: %灰度直方图均衡化

I=imread('D:\image\bubbles.bmp');%读取图像 subplot(2,2,1); Imshow(I);%显示图像 title('原图'); subplot(2,2,2);

imhist(I);%绘制图像的灰度直方图 title('原图的灰度直方图'); subplot(2,2,3);

J=histeq(I,64);%对图像进行均衡化处理,返回有64级灰度的图像J Imshow(J);%显示图像

title('原图直方图均衡化'); subplot(2,2,4);

imhist(J);%绘制图像的灰度直方图

title('均衡后的灰度直方图')

以下展示了直方图均衡化的效果:

图4.2

优势:能够使得处理后图像的概率密度函数近似服从均匀分布,其结果扩张了像素值的动态范围,是一种常用的图像增强算法。

不足:不能抑制噪声。

4.图像二值化

4.1图像二值化

图像的二值化处理就是将图像上的像素点的灰度值设置为0或255,也就是讲整个图像呈现出明显的黑白效果。首先,图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。其次,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像。

图像二值化程序:

%图像二值化(选取一个域值,(5) 将图像变为黑白图像)

I=imread('beauty.tif');

bw=im2bw(I,0.5);%选取阈值为0.5

subplot(1,3,1);

imshow(I);

title('原图');

subplot(1,3,2);

imshow(bw);

title('显示二值图像');

J=find(I<150);

I(J)=0;

J=find(I>=150);

I(J)=255;

subplot(1,3,3);

imshow(I);

title(' 图像二值化 ( 域值为150 ) ');

下图为图像二值化的效果:

图 4.3

5.对比度增强

5.1对比度增强

对比度增强是按一定的规则修改输入图像每一个像素的灰度,从而改变图像灰度的动态范围。例如,观察图4.4可以发现,该图的对比度不高其灰度直方图没有低于35或高于210的值,如果将图像数据映射到整个灰度范围内,则图像的对比度将大大增大。

图4.4

5.2灰度调整

灰度调整程序:

%imadjust函数

I=imread('D:\image\rice.bmp');%读取图像

subplot(2,2,1);

Imshow(I);%显示图像

title('原图');

subplot(2,2,2);

imhist(I);%绘制图像的灰度直方图

title('原图的灰度直方图');

subplot(2,2,3);

J=imadjust(I,[0.3 0.7],[]);%对图像进行灰度变换

Imshow(J);%显示图像

title('原图直方图均衡化');

subplot(2,2,4);

imhist(J);%绘制图像的灰度直方图

title('均衡后的灰度直方图')

以下展示了常用对比度扩展法的结果:

图4.5

从图4.5【原图】可以看出原始图像动态范围较小,整体较暗,反映在直方图上像素主要集中在低灰度的一侧。经过对比度调整,图像变亮。

5.3对数变换

对数变化常用来扩展低值灰度,压缩高值灰度,这样可以使低值灰度的图像细节更容易看清。

对数变换程序:

%对数变换

I=imread('beauty.tif');%读取图像

I=mat2gray(I);%对数变换不支持uint8类型数据,将一个矩阵转化为灰度图像的数据格式(double)

J=log(I+1); subplot(1,2,1);

Imshow(I);%显示图像 title('原图'); subplot(1,2,2); Imshow(J);

title('对数变换后的图像')

图 4.6

对数变换确实能够扩展低值灰度,而压缩高值灰度,使低值灰度的图像细节更容易看清。

6.滤波

6.1平滑滤波

平滑技术用于平滑图像中的噪声。平滑噪声可以在空间域中进行,基本方法是求像素灰度的平均或中值。为了既平滑噪声又保护图像信号。

6.2线性滤波

输出图像的值等于输入图像滤波后值的局部平均,各个项具有相同的权。下面是平滑窗口分别为矩形和圆形的情况。

???

?????????

????=1111111111111111111111111251],[k j h rect ???

??

??

?

?????

???=0111011111

11111

1111101110

211],[k j h circ

对一些图像进行线性滤波可以去除图像中某些类型的噪声,如采用邻域平均法的均值滤

波器就非常适用于去除通过扫描得到的图像中的颗粒噪声。 6.2线性平滑滤波程序: %线性平滑滤波 I=imread('beauty.tif');

J=imnoise(I,'salt & pepper',0.02); subplot(221),imshow(I) title('原图像')

subplot(222),imshow(J)

title('添加椒盐噪声图像')

K1=filter2(fspecial('average',3),J)/255;%应用3*3邻域窗口法

subplot(223),imshow(K1)

title('3x3窗的邻域平均滤波图像')

K2=filter2(fspecial('average',7),J)/255;%应用7*7邻域窗口法

subplot(224),imshow(K2)

title('7x7窗的邻域平均滤波图像')

如图4.8(a)为线性平滑滤波的例子:

如图子

6.3非线性滤波

中值滤波是一种最常用的图像增强技术,是非线性滤波。对椒盐噪声有很好的去噪效果。下图是加高斯噪声后,中值滤波和平均滤波的滤波效果

程序:

%中值滤波和平均滤波

I=imread('girl.bmp');

I=rgb2gray(I);

J=imnoise(I,'gaussian',0,0.01);

subplot(2,2,1);

imshow(I);

title('原图');

subplot(2,2,2);

imshow(J);

title('noise');

K=fspecial('average',5);

K1=filter2(K,J)/255;

subplot(2,2,3);

imshow(K1);

title('平均滤波');

L=medfilt2(J,[3 5]);

subplot(2,2,4);

imshow(L);

title('中值滤波');

对比:

图 4.9(a)

但对于椒盐噪声,中值滤波效果比均值滤波效果好。

中值滤波程序:

%二维中值滤波

hood=3;

[P,map]=imread('leno.bmp');

I=rgb2gray(P);

imshow(I,map);

noisy=imnoise(I,'salt & pepper',0.05); %加入强度为0.05的椒盐噪声subplot(221);

imshow(noisy,map);

title('加入椒盐噪声');

filtered1=medfilt2(noisy,[hood hood]);%3×3窗口二维中值滤波subplot(222);

imshow(filtered1,map);

title('3×3窗口');

hood=5;

filtered2=medfilt2(noisy,[hood hood]); %5×5窗口二维中值滤波subplot(223);

imshow(filtered2,map);

title('5×5窗口');

hood=7;

filtered3=medfilt2(noisy,[hood hood]); %7×7窗口二维中值滤波subplot(224);

imshow(filtered3,map);

title('7×7窗口');

I=imread('leno.bmp');

figure;

imshow(I);

title('原图');

实现中值滤波的效果图如下:

图 4.9(b)

比较发现,图像的噪声点被去除;图像的边缘稍微的变得模糊。高通滤波边缘增强程序:

%高通滤波边缘增强

I=imread('girl.bmp');

I=rgb2gray(I);

subplot(2,2,1);

title('original pic');

J=fspecial('average',3);

J1=conv2(I,J)/255;

subplot(2,2,2);

imshow(J1);

title('3*3lowpass');

K=fspecial('prewitt');

K1=filter2(K,J1)*5;

subplot(2,2,3);

imshow(K1);

title('prewitt');

L=fspecial('sobel');

L1=filter2(L,J1)*5;

subplot(2,2,4);

imshow(L1);

title('sibel');

下图为高通滤波边缘增强的例子:

图 4.9(c)

优势:去噪效果明显,并且能够较好的保持图像边缘位置和细节。

不足:非线性滤波算法的实现相对线性滤波比较困难。

7锐化

图像锐化处理的作用是使灰度反差增强,从而使模糊图像变得更加清晰。图像模糊的实质就是图像受到平均运算或积分运算,因此可以对图像进行逆运算,如微分运算以突出图像细节使图像变得更为清晰。

%锐化

a=imread('dowels.tif');

subplot(131);

imshow(a);

title('原图');

b=double(a);%将图像矩阵转化为double类型

s=size(b);

c=zeros(s(1,1),s(1,2));

for x=2:s(1,1)-1

for y=2:s(1,2)-1

c(x,y)=(-b(x+1,y)-b(x-1,y)-b(x,y+1)-b(x,y-1)+4*b(x,y));

end

end%用拉氏算子对图像进行滤波,这个过程相当于运用了一个3×3的掩膜[0,-1,0;-1,4,-1;0,-1,0]

subplot(132);

imshow(c);

title('Laplace锐化滤波图像');

d=b+c;%当拉普拉斯掩膜中心系数为正时,增强图像为原图像于拉氏算子滤波图像之和

d=uint8(d);%将图像矩阵变回uint8格式

subplot(133);

imshow(d);

title('Laplace锐化滤波结果');

图4.10展示了在MA TLAB中进行图像锐化的处理结果:

图4.10

比较发现,图像模糊的部分得到了锐化,特别是模糊的边缘部分得到了增强,边界更加明显。但是,图像显示清楚的地方,经过滤波却发生了失真。

8参考文献

1.汪志云,黄梦为.基本直方图的图像增强及其MATLAB实现[J].计算机工程与科学,2006,28(2):54-56.

2.刘榴娣,刘明奇,党长民.实用数字图像处理[M].北京理工大学出版社,1998.

3.冈萨雷斯RC 著.李叔梁译.数字图像处理.北京:科学出版社,1983

4.李月景编著.图像识别技术及其应用.北京:机械工业出版社,1985

5.信号与系统西安电子科技大学出版张小红

自我评价

这次课程设计不仅使我对数字图像处理的知识有了进一步的了解,并通过MATLAB编程对图像处理的实践加强了我MATLAB的运用和掌握。通过这次课程设计,我了解到数字图像处理是一种通过计算机采用一定的算法对图形图像进行处理的技术。数字图像处理技术已经在各个领域上都有了比较广泛的应用。图像处理的信息量很大,对处理速度的要求也比较高。MATLAB强大的运算和图形展示功能,使图像处理变得更加的简单和直观。通过这次课程设计更加详细地了解到了MATLAB 语言的特点,以及基于MA TLAB的数字图像处理环境,如何利用MA TLAB及其图像处理工具箱进行数字图像处理,并通过实践掌握了利用MATLAB图像处理工具箱进行图像处理的方法。同时在课程设计的过程中我通过在MATLAB的应用了解到,知识只有同实践相结合才能有更深刻的掌握,同时感谢在这次课程设计中给于我帮助的同学。

相关主题
相关文档
最新文档