数字图像处理课程设计.docx
《数字图像处理课程设计.docx》由会员分享,可在线阅读,更多相关《数字图像处理课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
数字图像处理课程设计
1课程设计目的
(1)对数字图像处理这门课程所学知识进行巩固和扩充。
(2)运用图像理论知识来完成图像的膨胀的设计。
(3)学习并且熟练使用MATLAB软件进行编程和仿真。
(4)增强学生对图像学科的学习兴趣,培养图像处理的仿真建模能力。
(5)培养学生分析问题、解决问题的能力及动手操作能力。
2课程设计要求
(1)掌握课程设计的相关知识、概念清晰;
(2)程序设计合理、能够正确运行;
(3)查阅资料,掌握图像腐蚀的基本方法,编程实现膨胀;
(4)掌握运用Matlab软件对灰度与二值图像的腐蚀的处理方法;
(5)使用imerode函数进行图像腐蚀,观察腐蚀后的图像变化情况。
3理论知识叙述
3.1图像处理与数字图像处理概念
图像处理并不仅限于对图像进行增强、复原和编码,还要对图像进行分析,图像分析旨在对图像进行描述,即用一组数或符号表征图像中目标区的特征、性质和相互间的关系,为模式识别提供基础。
描述一般针对图像或景物中的特定区域或目标。
闭运算通常用来填充目标内细小空洞,连接断开的邻近目标,平滑其边界的同时不明显改变其面积。
数字图像处理(digitalimageprocessing)是用计算机对图像信息进行处理的一门技术,使利用计算机对图像进行各种处理的技术和方法。
利用数字图像处理主要是为了修改图形,改善图像质量,或是从图像中提起有效信息,还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。
3.2MATLAB及其图像处理工具箱
MATLAB语言是由美国MathWorks公司推出的计算机软件,经过多年的逐步发展与不断完善,现已成为国际公认的最优秀的科学计算与数学应用软件之一,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境,而且还具有可扩展性特征。
MATLAB中的数字图像是以矩阵形式表示的,矩阵运算的语法对MATLAB中的数字图像同样适用,这意味着MATLAB强大的矩阵运算能力对用于图像处理非常有利。
图像处理工具箱(Image ProcessingToolbox)提供了一套全方位的参照标准算法和图形工具,用于进行图像处理、分析、可视化和算法开发。
可进行图像压缩、空间转换、图像增强、特征检测、降噪、图像分割和图像配准等功能。
工具箱中大部分函数均以开放式 MATLAB语言编写,这意味着可以检查算法、修改源代码和创建自定义函数。
本文利用MATLAB图像处理工具箱对基于DCT的JPEG图像压缩编码理论算法进行仿真,实验证明该软件功能强大,语言简洁易学,工具箱具有丰富的技术支持并集成了该领域专家的智慧,应用简单而效果良好。
3.3MATLAB在数字图像处理中的应用
MATLAB7.x提供了2O类图像处理函数,涵盖了图像处理包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。
这些函数按功能可分为图像显示、图像文件I/O、图像算术运算、几何变换、图像登记、像素值与统计、图像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、结构元素创建与处理、基于边缘的处理、色彩映射表操作、色彩空间变换及图像类型与类型转换。
Matlab数字图像处理工具箱函数包括以下几类:
(1)图像显示函数;
(2)图像文件输入、输出函数;(3)图像几何操作函数;(4)图像像素值及统计函数;(5)图像分析函数;(6)图像增强函数;(7)线性滤波函数;(8)二维线性滤波器设计函数;(9)图像变换函数;(10)图像邻域及块操作函数;(11)二值图像操作函数;(12)基于区域的图像处理函数;(13)颜色图操作函数;(14)颜色空间转换函数;(15)图像类型和类型转换函数。
3.4原理简述
3.4.1形态学简介
数字图像处理中的形态学处理是指将数字形态学作为工具从图像中提取对于表达和描绘区域形状有用处的图像分量,比如边界、骨架以及凸壳,还包括用于预处理或后处理的形态学过滤、细化和修剪等。
图像形态学处理中我们感兴趣的主要是二值图像。
在二值图像中,所有黑色像素的集合是图像完整的形态学描述,二值图像的各个分量是Z2的元素。
假定二值图像A和形态学处理的结构元素B是定义在笛卡儿网格上的集合,网格中值为1的点是集合的元素,当结构元素的原点移到点(x,y)时,记为Sxy,为简单起见,结构元素为3x3,且全都为1,在这种限制下,决定输出结果的是逻辑运算。
3.4.2图像膨胀的原理
膨胀和腐蚀操作是形态学处理的基础,许多形态学算法都是以这两种运算为基础的。
膨胀,即给图像中的对象边界添加像素。
膨胀是以得到B的相对与它自身原点的映像并且由z对映像进行移位为基础的。
A被B膨胀是所有位移z的集合,这样,和A至少有一个元素是重叠的。
我们可以把上式改写为:
结构元素B可以看作一个卷积模板,区别在于膨胀是以集合运算为基础的,卷积是以算术运算为基础的,但两者的处理过程是相似的:
⑴用结构元素B,扫描图像A的每一个像素;⑵用结构元素与其覆盖的二值图像做“与”操作;⑶如果都为0,结果图像的该像素为0,否则为1。
在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。
在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。
在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1。
可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。
结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。
此外,imdilate还可以接受两个可选参数:
PADOPT(padopt)——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。
4设计方案
4.1灰度矩阵的膨胀
首先创建一个包含矩形对象的二值图像矩阵,然后定义结构元素('square',9),再用imdilate函数将图像进行膨胀操作,最终显示原图像和膨胀后的图像进行对比观察。
4.2灰度图像的膨胀
首先从F盘中读取灰度图像,然后定义一个结构元素('square',6),再用imdilate函数对图像进行膨胀操作和用1-im2bw(I)进行相反方向操作,再用imdilate函数将相反图像进行膨胀操作,并依次显示原始图像,膨胀结果图像,相反图像,相反图像膨胀结果进行对比观察。
4.3彩色图像的膨胀
首先读取F盘中的彩色图像,然后定义结构元素('square',3),用imdilate函数将原始图像膨胀,再通过rgb2gray(I)函数将图像进行二值化操作,转化为灰度图像,继而再用imdilate函数将灰度图像膨胀,依次显示原始图像,原始图像膨胀结果,灰度图像,灰度图像膨胀结果进行对比观察。
4.4图像的膨胀与边缘提取
首先读取F盘中的彩色图像,然后定义结构元素('diamond',2),再用rgb2gray(I)函数将图像进行二值化操作,转化为灰度图像,用imdilate函数膨胀灰度图像和J1=imerode(J,SE);J2=J-J1;两步操作提取灰度图像的边缘,显示原始图像,图像灰度化结果,灰度图像膨胀结果和边缘提取图像的结果,并进行对比观察。
5程序设计
5.1灰度矩阵的膨胀
BW=zeros(90,90);
BW(30:
60,30:
60)=1; %创建一个包含矩形对象的二值图像矩阵
SE=strel('square',9); %定义结构元素
BW2=imdilate(BW,SE); %将图像进行膨胀操作
figure
(1);
imshow(BW); %显示原图像
title('原图像');
figure
(2);
imshow(BW2); %显示膨胀后的图像
title('膨胀结果图像');
5.2灰度图像的膨胀
I=imread('F:
\1003030405\zhaowei.jpg'); %从F盘中读取图像
SE=strel('square',6); %定义一个结构元素
IM1=imdilate(I,SE); %将图像进行膨胀操作
J=1-im2bw(I); %将图像进行相反方向操作
IM2=imdilate(J,SE); %将相反图像进行膨胀操作
figure
(1);
imshow(I);
title('原始图像'); %显示原始图像
figure(2);
imshow(IM1); %显示膨胀结果图像
title('膨胀结果图像');
figure(3);
imshow(J);
title('相反图像'); %显示相反图像
figure(4);
imshow(IM2); %显示相反图像膨胀结果
title('相反图像膨胀结果');
5.3彩色图像的膨胀
I=imread('F:
\1003030405\hehua.jpg'); %读取F盘中的彩色图像
SE=strel('square',3); %定义结构元素
J=imdilate(I,SE); %将原始图像膨胀
K=rgb2gray(I); %将图像进行二值化操作,转化为灰度图像
L=imdilate(K,SE); %将灰度图像膨胀
figure(1);
imshow(I); %显示原始图像
title('原始图像');
figure
(2);
imshow(J); %显示原始图像膨胀结果
title('原始图像膨胀结果');
figure(3);
imshow(K); %显示图像灰度化结果
title('灰度图像');
figure(4);
imshow(L); %显示灰度图像膨胀结果
title('灰度图像膨胀结果');
5.4图像的膨胀与边缘提取
I=imread('F:
\1003030405\baobao.jpg');
SE=strel('diamond',2);
J=rgb2gray(I); %将图像进行二值化操作,转化为灰度图像
L=imdilate(J,SE);
J1=imerode(J,SE);
J2=J-J1;
figure
(1);
imshow(I); %显示原始图像
title('原始图像');
figure
(2);
imshow(J); %显示图像灰度化结果
title('灰度图像');
figure(3);
imshow(L);
title('灰度图像膨胀结果'); %显示灰度图像膨胀结果
figure(4);
imshow(J2);
title('边缘提取图像'); %显示边缘提取图像
6仿真结果与分析
6.1二值图像矩阵仿真结果
分析:
利用结构元素将图6-1亮的地方进行膨胀的结果如图6-2所示,证明对图像的膨胀处理成功。
图6-1二值图像矩阵原始图像
图6-2二值图像矩阵膨胀结果图像
6.2灰度图像的仿真结果
分析:
利用结构元素将图6-3亮的地方进行膨胀的结果如图6-4所示,证明对图像的膨胀处理成功;对图6-5进行取反操作得到图6-6,并且对图6-7进行膨胀得到图6-8,通过对处理后的赵薇的四幅图像的对比观察证明对图像的处理成功。
图6-3灰度图像的原始图像
图6-4灰度图像的膨胀结果图像
图6-5灰度图像的相反图像
图6-6 灰度图像的相反图像膨胀结果
6.3彩色图像的仿真结果
分析:
利用结构元素将图6.3.1亮的地方进行膨胀的结果如图6.3.2所示,证明对图像的膨胀处理成功;对图6.3.1进行灰度化操作得到图6.3.3,并且对图6.3.3进行膨胀得到图6.3.4,通过对处理后的荷花和诗句的图像的对比证明对图像的处理成功。
图6-7彩色图像的原始图像
图6-8彩色图像的原始图像膨胀结果
图6-9彩色图像的灰度化图像
图6-10灰度图像膨胀结果
6.4图像的膨胀和边缘提取
利用结构元素对图6.3.1进行灰度化操作得到图6.4.2,并且对图6.4.2进行膨胀得到图6.4.3,对图6.4.3边缘提取得到图6.4.4,通过对处理后的海绵宝宝的图像的对比对图像的处理成功。
图6-11图像边缘提取的原始图像
图6-12 图像边缘提取的灰度图像
图6-13图像边缘提取的灰度图像膨胀结果
图6-14边缘提取图像
总结
本次实验利用形态学运算—膨胀对图像进行了处理。
数学形态学的基本思想是:
用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。
它的优点有:
有效滤除噪声、保留图像中原有信息、算法易于用并行处理方法有效实现等等。
图像的二值化处理就是将图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效果。
一般情况下,膨胀和腐蚀是不可逆运算,对图像膨胀或腐蚀都导致图像目标面积大小改变。
为了对二值图像进行着两种基本操作而保证图像目标面积不发生明显变化,提出了二值图像的开运算和闭运算。
使用同一个结构元素对图像先膨胀再进行腐蚀的运算称为闭运算。
闭运算的作用是在保持原目标的大小与形态的同时,填充凹陷,弥合孔洞和裂缝。
常用来填充孔洞、凹陷和连接断开的目标,与膨胀作用相类似,但与膨胀的处理相比,具有保持目标大小不变的优点。
通过本次的实验,我了解了二值形态学的基本运算,掌握了二值图像膨胀、基本方法,并且会运用编程实现膨胀、腐蚀,本次的实验目的已经完成,意识到在以后的生活中要了解做事情的目的,注重每一个与细节,认真思考遇到的所有问题,提高自己各方面的能力。
感谢魏老师教会我们理论与实践知识,也让我明白了什么是学习,怎么样学习,为以后的生活奠定的基础与指引了方向。
总的来说,在此次实验中遇到了较多问题,经过对相关知识的复习以及对相关资料的查询,才逐个地解决了。
在今后的实验课中要有充分的准备与预习,不懂的问题要提前查资料,这样在实验中才会胸有成竹,才不会手忙脚乱。
参考文献
[1]张汗灵编著 MATLAB在图像处理中的应用/ 北京:
清华大学出版社,2008
[2]王家文 MATLAB6.5图形图像处理 国防工业出版社
[3]余成波编著 数字图像处理及MATLAB实现 重庆大学出版社2003
[4] 龚声蓉,刘纯平,王强 数字图像处理与分析北京:
清华大学出版社,2006.7
[5]郝文化主编MATLAB图形图像处理应用教程中国水利水电出版社2004
[6]苏金明,王永利编著MATLAB图形图像电子工业出版社2005
[7]阮秋琦,数字图像处理学·北京:
电子工业出版社,2001