数字图像处理期末论文Word格式文档下载.docx
《数字图像处理期末论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数字图像处理期末论文Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
关键词 彩色图像分割 颜色空间 直方图阈值化 边缘检测 模糊方法 神经网络
1引言
MATLAB语言是由美国MathWorks公司推出的计算机软件,经过多年的逐步发展与不断完善,现已成为国际公认的最优秀的科学计算与数学应用软件之一,是近几年来在国内外广泛流行的一种可视化科学计算软件。
它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境,而且还具有可扩展性特征。
MathWorks公司针对不同领域的应用,推出了信号处理、控制系统、神经网络、图像处理、小波分析、鲁棒控制、非线性系统控制设计、系统辨识、优化设计、统计分析、财政金融、样条、通信等30多个具有专门功能的工具箱,这些工具箱是由该领域内的学术水平较高的专家编写的,无需用户自己编写所用的专业基础程序,可直接对工具箱进行运用。
同时,工具箱内的函数源程序也是开放性的,多为M文件,用户可以查看这些文件的代码并进行更改,MALAB支持用户对其函数进行二次开发,用户的应用程序也可以作为新的函数添加到相应的工具箱中。
MATLAB中的数字图像是以矩阵形式表示的,这意味着MATLAB强大的矩阵运算能力用于图像处理非常有利,矩阵运算的语法对MATLAB中的数字图像同样适用。
本文对MATLAB图像处理工具箱进行探索及应用,实验证明该软件功能强大,语言简洁易学,人机界面友好,工具箱具有丰富的技
术支持并集成了该领域专家的智慧,应用简单而效果良好。
2MATLAB图像处理工具箱及数字图像处理基本过程简介
数字图像处理工具箱函数包括以下15类:
⑴、图像显示函数;
⑵、图像文件输入、输出函数;
⑶、图像几何操作函数;
⑷、图像像素值及统计函数;
⑸、图像分析函数;
⑹、图像增强函数;
⑺、线性滤波函数;
⑻、二维线性滤波器设计函数;
⑼、图像变换函数;
⑽、图像邻域及块操作函数;
⑾、二值图像操作函数;
⑿、基于区域的图像处理函数;
⒀、颜色图操作函数;
⒁、颜色空间转换函数;
⒂、图像类型和类型转换函数。
MATLAB图像处理工具箱支持四种图像类型,分别为真彩色图像、索引色图像、灰度图像、二值图像,由于有的函数对图像类型有限制,这四种类型可以用工具箱的类型转换函数相互转换。
MATLAB可操作的图像文件包括JPG、HDF、JPEG、PCX、TIFF、XWD等格式。
下面就图像处理的基本过程讨论工具箱所实现的常用功能。
2.1.常用图像操作
图像的读写与显示操作:
用imread()读取图像,imwrite()输出图像,把图像显示于屏幕有imshow(),image()等函数。
imcrop()对图像进行裁剪,图像的插值缩放可用imresize()函数实现,旋转用imrotate()实现。
2.2.图像增强功能:
图像增强是数字图像处理过程中常用的一种方法,目的是采用一系列技术去改善图像的视觉效果或将图像转换成一种更适合于人眼观察和机器自动分析的形式。
常用的图像增强方法有以下几种:
1)灰度直方图均衡化
均匀量化的自然图像的灰度直方图通常在低灰度区间上频率较大,使得图像中较暗区域中的细节看不清楚,采用直方图修整可使原图像灰度集中的区域拉开或使灰度分布均匀,从而增大反差,使图像的细节清晰,达到增强目的。
直方图均衡化可用histeq()函数实现。
2)灰度变换法
照片或电子方法得到的图像,常表现出低对比度即整个图像偏亮或偏暗,为此需要对图像中的每一像素的灰度级进行标度变换,扩大图像灰度范围,以达到改善图像质量的目的。
这一灰度调整过程可用imadjust()函数实现。
3)平滑与锐化滤波
平滑技术用于平滑图像中的噪声,基本采用在空间域上的求平均值或中值。
或在频域上采取低通滤波,因在灰度连续变化的图像中,我们通常认为与相邻像素灰度相差很大的突变点为噪声点,灰度突变代表了一种高频分量,低通滤波则可以削弱图像的高频成分,平滑了图像信号,但也可能使图像目标区域的边界变得模糊。
而锐化技术采用的是频域上的高通滤波方法,通过增强高频成分减少图像中的模糊,特别是模糊的边缘部分得到了增强,但同时也放大了图像的噪声。
在MATLAB中,各种滤波方法都是在空间域中通过不同的卷积模板即滤波算子实现,可用fspecial()函数创建预定义的滤波算子,然后用filter2()或conv2()函数在实现卷积运算的基础上进行滤波。
2.3.边缘检测和图像分割功能
边缘检测是一种重要的区域处理方法,边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。
如果一个像素落在边界上,那么它的邻域将成为一个灰度级变化的带。
对这种变化最有用的两个特征是灰度的变化率和方向。
边缘检测算子可以检查每个像素的邻域并对灰度变化率进行量化,也包括对方向的确定,其中大多数是基于方向导数掩模求卷积的方法。
MATLAB工具箱提供的edge()函数可针对sobel算子、prewitt算子、Roberts算子、log算子和canny算子实现检测边缘的功能。
基于灰度的图像分割方法也可以用简单的MATLAB代码实现。
2.4.图像变换功能
图像变换技术是图像处理的重要工具,常运用于图像压缩、滤波、编码和后续的特征抽取或信息分析过程。
MATLAB工具箱提供了常用的变换函数,如fft2()与ifft2()函数分别实现二维快速傅立叶变换与其逆变换,dct2()与idct2()函数实现二维离散余弦变换与其逆变换,Radon(),iradon()函数实现Radon变换与逆Radon变换。
除了以上基本的图像处理功能,MATLAB还提供了如二值图像的膨胀运算dilate()函数、腐蚀运算erode()函数等基于数学形态学与二值图像的操作函数。
3MATLAB图像处理工具箱运用实例
为了证明MATLAB语言是一种简洁,可读性较强的高效率编程软件,本文通过运用图像处理工具箱中的有关函数对一实拍的芯片图像进行处理。
如图1,图“Fig.jpg”为一幅原图像,该图像右边的剪切图像为从“Fig.jpg”中剪切出的将用于分析的子图像块。
为了便于分析与观察,把子图像块旋转90度置于水平位置并把该图存在名为“Fig1.jpg”的图像文件中。
以上的过程可用以下代码实现。
x=imread('
E:
\study\电子与通信\Term2\数字图像处理DIP\Fig.jpg'
);
figure,imshow(x);
y=imcrop(x);
figure,imshow(y,[]);
z=imrotate(y,90);
imwrite(z,'
\study\电子与通信\Term2\数字图像处理DIP\Fig1.jpg'
'
jpg'
isrgb(z)
原图Fig.jpg剪贴图Fig1.jpg
图1
经判断得知该图像为一真彩色图像,首先把它转换为灰度图像,以下所有的进一步处理均采用经过灰度化处理后的图像作为原图。
3.1对灰度图进行直方图均衡化处理
通过比较灰度原图和经均衡化后的图形可见图像变得清晰,均衡化后的直方图形状比原直方图的形状更理想。
效果比较见图2,程序代码如下:
y=rgb2gray(x);
subplot(221),imshow(y);
title('
Fig1.jpg灰度化图像'
subplot(222),imhist(y);
均衡化前直方图'
I=histeq(y);
subplot(223),imshow(I);
均衡化后图像'
subplot(224),imhist(I);
均衡化后直方图'
图2
3.2灰度调整
通过灰度调整把感兴趣的灰度范围拉开,使图像中亮的越亮,暗的越暗,分别取原图中要变换的灰度范围为(0.3,0.7)和(0.5,0.6),把变换后的图像相比较,见图3,可知原图所变换的灰度范围小,则调整后的图像反差大。
程序代码如下:
y=imadjust(x,[0.30.7],[]);
z=imadjust(x,[0.50.6],[]);
subplot(211),imshow(y);
原图所变换的灰度范围为(0.3,0.7)'
subplot(212),imshow(z);
原图所变换的灰度范围为(0.5,0.6)'
图3
3.3灰度图像平滑与锐化处理
MATLAB图像工具箱中有多种平滑与锐化滤波函数,也可以自定义滤波算子。
在此我们采用可根据图像的局部方差来调整滤波器输出的自适应滤波对图像进行平滑,及采用拉氏算子运算使图像的模糊部分得到增强。
处理后的图像见图4,实现代码如下:
x=rgb2gray(x);
x=double(x);
p=wiener2(x);
subplot(211),imshow(p,[]);
自适应滤波平滑'
)
h=[010;
1-40;
010];
q=conv2(x,h,'
same'
r=x-q;
subplot(212),imshow(r,[]);
拉氏算子卷积锐化'
图4
4结论
以上图像处理实例只是对MATLAB图像工具箱的一小部分进行运用,经过更进一步的图像分割、二值化、归一化等处理,可以把芯片中的字符特征提取出来送入神经网络分类器进行识别,我们应用MATLAB神经网络工具箱对字符分类进行模拟仿真也取得了较好的效果。
由此可以看出MATLAB语言简洁,可读性强,工具箱涉及的专业领域广泛且功能强大。
图像工具箱几乎包括所有经典的图像处理方法。
由于工具箱具有可靠性和开放性,我们可以方便地直接加以使用,也可以把自己的代码加到工具箱中以改进函数功能,同时,MATLAB中的小波工具箱也有许多函数可运用于图像处理技术。
因此,在图像处理技术中使用MATLAB语言可以快速实现模拟仿真,大大提高实验效率,如果要开发实用程序,MATLAB语言还可以通过MEX动态连接库实现与C语言的混合编程,为工程应用提供了更多的便利条件。
参考文献
[1]王新成.高级图像处理技术[M].北京:
中国科学技术出版社.2001,18-90;
[2]Kenneth.R.Castleman.数字图像处理技术[M].北京:
电子工业出版社.1998,14-16;
[3]周龙等.基于MATLAB的储粮害虫图像处理方法[J].微计算机信息.2005,2-0;