图像增强与MATLAB实现

更新时间:2024-05-01 03:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《数字图像处理》

课程设计

课设题目:图像增强与MATLAB实现 学校学院:华东交通大学理学院 学生班级:13级信息计算(2)班 学生姓名:魏超

学生学号:20130810010216 指导老师:范自柱

图像增强与MATLAB实现

摘 要

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

关键字:图像;图像增强;算法

目 录

一、MATLAB的简介 .............................................. 1 1.1 MATLAB主要功能 ........................................... 1 二、MATLAB的主要功能 .......................................... 1 2.1数字增强技术概述 .......................................... 1 2.2数字图像的表示 .......................................... 1 三、直方图的均衡化 ............................................ 2 3.1图像的灰度 ................................................ 2 3.2灰度直方图 ................................................ 2 3.3直方图均衡化 .............................................. 3 四、图像二值化 ................................................ 4 4.1图像二值化 ................................................ 4 五、对比度增强 ................................................ 5 5.1对比度增强 ................................................ 5 5.2灰度调整 .................................................. 6 5.3对数变换 .................................................. 7 六、滤波 ...................................................... 8 6.1平滑滤波 .................................................. 8 6.2线性平滑滤波程序: ........................................ 8 6.3非线性滤波 ................................................ 9 七、锐化 ..................................................... 13 八、参考文献 ................................................. 14 九、自我评价 ................................................. 14

一、Matlab的简介

1.1 MATLAB主要功能

MATLAB是建立在向量、数组和矩阵基础上的一种分析和仿真工具软件包,包含各种能够进行常规运算的“工具箱”,如常用的矩阵代数运算、数组运算、方程求根、优化计算及函数求导积分符号运算等;同时还提供了编程计算的编程特性,通过编程可以解决一些复杂的工程问题;也可绘制二维、三维图形,输出结果可视化。目前,已成为工程领域中较常用的软件工具包之一。

二、MATLAB的主要功能

2.1数字增强技术概述

图像增强是按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些信息使得图像更加实用。图像增强技术主要包含直方图修改处理、图像平滑处理、图像尖锐化处理等。

图像增强技术主要包括:直方图修改处理,图像平滑处理,图像尖锐化处理,彩色图像处理。从纯技术上讲主要有两类:频域处理法和空域处理法。

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

2.2数字图像的表示

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

1

三、直方图的均衡化

3.1图像的灰度

常用的图像一般是灰度图,这时f表示灰度值,反映了图像上对应点的亮度。亮度是观察者对所看到的物体表面反射光强的量度。作为图像灰度的量度函数

f(x,y)应大于零。人们日常看到的图像一般是从目标上反射出来的光组成的,

所以f(x,y)可看成由两部分构成:入射到可见场景上光的量;场景中目标对反射光反射的比率。确切地说它们分别称为照度成分i(x,y)和反射成分r(x,y)。

f(x,y)与i(x,y)和r(x,y)都成正比,可表示成f(x,y)=i(x,y)×r(x,y)。

3.2灰度直方图

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

程序如下: %灰度直方图

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

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

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

2

图4.1

3.3直方图均衡化

直方图均衡化过程如下:

(1)计算原图像的灰度直方图Pr(rK);

(2)计算原图像的灰度累积分布函数sk,进一步求出灰度变换表; (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('均衡后的灰度直方图')

3

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

图4.2

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

不足:不能抑制噪声。

四、图像二值化

4.1图像二值化

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

图像二值化程序:

%图像二值化 (选取一个域值,(5) 将图像变为黑白图像) I=imread('beauty.tif');

bw=im2bw(I,0.5);%选取阈值为0.5 subplot(1,3,1); imshow(I);

4

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.1对比度增强

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

5

图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('均衡后的灰度直方图')

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

6

图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('对数变换后的图像')

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展示了在MATLAB中进行图像锐化的处理结果:

图4.10

比较发现,图像模糊的部分得到了锐化,特别是模糊的边缘部分得到了增强,

13

边界更加明显。但是,图像显示清楚的地方,经过滤波却发生了失真。

八、参考文献

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

[2] 刘榴娣,刘明奇,党长民.实用数字图像处理[M].北京理工大学出版社,1998. [3] 冈萨雷斯 RC 著.李叔梁译.数字图像处理.北京:科学出版社,1983. [4] 李月景编著.图像识别技术及其应用.北京:机械工业出版社,1985.

九、自我评价

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

14

本文来源:https://www.bwwdw.com/article/4zqg.html

Top