1、数字图像处理实验指导书(2014版) 作者: 日期:18 个人收集整理 勿做商业用途齐鲁工业大学 数字图像处理上机实验指导书电气工程与自动化学院电子信息工程系2014年3月10日实验一 Matlab图像处理工具箱的初步练习实验目的:熟悉常用的图像文件格式与格式转换;熟悉图像矩阵的显示方法(灰度、索引、黑白、彩色);熟悉图像矩阵的格式转换。实验内容:1. 熟悉图像文件的读取、显示和保存;2. 熟悉常用的图像文件格式,以及各种格式的转换;3. 了解图像数据的存储形式,掌握在Matlab中获取图像数据的方法。4. 编写一个简单的图像处理程序(求反色图像)。实验步骤:1. 熟悉图像文件的读取、显示、保
2、存以及格式转换1) 读图像:分别读取不同格式的图像(灰度图像和索引图像和真彩色图像),观察工作空间,把得到的信息记录下来,理解其中的含义。需要用到的主要函数:imread、load2) 将1)中读入的图像显示出来。需要用到的主要函数:imshow3) 将1)中读入的图像分别转换成灰度图像、真彩色图像、二值图像,显示并保存成分别保存成数据文件(.mat)和图像文件(。jpg/.tif/。png)到你的文件夹中,观察工作空间,学会如何将图像数据显示在命令窗口。 需要用到的主要函数:ind2gray、ind2rgb、im2bw、save、imwrite4) 从matlab的images文件夹中读取一
3、幅真彩色图像(green。jpg)将其转换到HSV空间和YCrCb空间,并将这些图像保存成图像文件,到你的文件夹中。需要用到的主要函数:imread、rgb2hsv、rgb2Ycbcr、imwrite 注意:load函数和imread函数、save函数和imwrite函数的区别。2. 学习使用help功能。打开image processing工具箱,看demo3. 编写程序求一幅灰度图像的反色图像;图1 原图与反色图实验报告要求:实验报告要求包括 实验目的、实验内容(概括)、实验步骤(要有具体的程序段)、每一步骤得到的实验结果和数据,以及对实验结果的分析,最后写出实验总结。实验二 图像的空域增
4、强实验实验目的:掌握直方图均衡化的原理和方法;掌握平均滤波器、中值滤波的原理,以及对不同强度的高斯噪声和椒盐噪声进行滤波处理效果;熟悉图像的锐化过程。实验内容:1. 观察各类图像的直方图,并利用直方图均衡方法进行图象增强;2. 图像的平滑:完成对于给定图像加入噪声(高斯噪声和椒盐噪声),观察均值滤波和中值滤波的效果。3. 图像的锐化:观察各种模板对应的锐化处理效果;基本原理:1直方图的定义图象的灰度直方图是一个函数,表示数字图象中每一灰度级与该灰度级出现的频数(即具有这一灰度级的象素数目)间的对应关系:M为一幅图象所包含的象素总数;N(b)为图象中灰度值为b的象素总数.通常,以灰度值b为横坐标
5、,N(b)为纵坐标。直方图是图象中象素灰度值的一阶概率分布密度的一种近似。2直方图均衡直方图均衡(histogram equalization)就是通过点运算使输入图像的灰度分布较为均匀,使图像具有较好的视觉效果。设r, s分别为原图和新图的灰度,jr(r), js(s)分别为原图及新图的概率密度函数,则均衡变换为原图像的累积分布函数:对于离散图像,均衡转换公式为:其中,Lmax指图像中的最大灰度值(对于灰度图像就是255).3. 均值滤波用均值滤波可以判断并消除孤立噪声。通常邻域取成NN方形窗,如N取4,例设f(x, y)、分别表示(x, y)点的实际灰度和经邻域平均后的灰度,Oi (i=1
6、,2,。.8)表示其邻接各点的灰度,如图1,则邻域平均可表示为:式中e 是和图象灰度有关的门限。方形窗口沿水平和垂直两个方向逐点移动,从而平滑整幅图象,去除了孤立噪声。简单的邻域平均会模糊图象。321f(x, y)48675图1 象素f(x, y)及其8邻域象素4.中值滤波采用邻域平均抑制噪声,在去除噪声的同时,不可避免地会使边缘轮廓模糊,因而使图象中包含的细节信息受到损失。中值滤波在过滤噪声的同时,还能较好地保护边缘轮廓信息,对减少随机脉冲噪声和胡椒面式(pepper-and-salt noise)噪声很有效.中值滤波的原理是用一个窗口W在图象上扫描,把窗口内包含的图象象素按灰度级升(或降)
7、序排列,取灰度值居中的象素灰度为窗口中心象素的灰度,便完成了中值滤波。5图像锐化 微分锐化的处理方法最常用的是梯度法.由场论理论知道,数量场的梯度是这样定义的:如果给定一个函数f(x,y),在坐标(x,y)上f的梯度可定义为一个矢量 gradf(x,y)=f/x,f/y由梯度的定义可以得知它有两个特点: (1)矢量gradf(x,y)是指向f(x,y)最大增加率的方向; (2)如果用Gf(x,y)来表示gradf(x,y)的幅度,那么 Gf(x,y)=maxgradf(x,y) =(f/x)+ (f/y) 在数字图像处理中,仍然要采用离散形式,为此用差分运算代替微分运算。式(531)可用下面的
8、差分公式来近似: Gf(x,y)f(x,y) f(x+1,y)2+f(x,y) f(x,y+1)21/2 实际计算机计算梯度时,通常用近似公式有: Gf(x, y)=|f(x,y)-f(x+1,y)+|f(x,y)f(x,y+1)罗伯特梯度(Robert gradient): Gf(x,y)=f(x,y)f(x+1,y+1)+f(x+1,y)- f(x,y+1)二次偏导数可近似地用差分表示为:Gf(x,y)= f(x-1,y)+f(x+1,y)+ f(x,y+1)+ f(x,y-1)-4f(x,y)实验步骤:1 给定一幅如下的图象(Matlab提供pout.tif),作如下直方图均衡处理操作,
9、统计原图的灰度直方图,并利用直方图均衡方法进行图象增强;显示直方图函数:imhist()直方图均衡函数:histeq()2 利用Matlab函数imnoise(),在原图上分别叠加高斯噪声和椒盐噪声,对比均值滤波和中值滤波的结果,并对结果做出分析,打开demo观察各滤波器队各类噪声的滤除效果;3 均值滤波的滤波模板自行设计,滤波过程可以通过卷积函数conv2()实现。中值滤波函数:medfilt()4 分别利用sobel算子和拉氏算子对图像进行锐化,并比较锐化结果;参考函数:构造滤波器函数fspecial()基于卷积的滤波函数filter2()卷积函数conv2()以上处理可以从demo里看到
10、演示结果。 图1 原始图像图2 直方图增强后的图像 图3 原图直方图 图4 直方图均衡后的图像直方图 图5 叠加高斯噪声图图6 叠加椒盐噪声图锐化参考结果图像: 图7 Laplacian锐化算子效果 图8 Laplacian锐化算子增强边缘后的效果实验报告要求:实验报告要求包括 实验目的、实验内容(概括)、实验原理、实验步骤(要有具体的程序段)、每一步骤得到的实验结果和数据,以及对实验结果的分析,最后写出实验总结。实验三 数字图像的频域滤波实验实验目的:通过对图像进行离散傅立叶变换、离散余弦变换及反变换熟悉变换的性质;利用频域实现图像信号的滤波运算,了解频域变换对图像的处理效果。实验内容:1.
11、 学会如何利用matlab函数对图像进行傅立叶变换DFT和余弦变换DCT,以及反变换;2. 研究傅里叶变换幅度的平移不变性;3. 研究傅里叶变换幅度的旋转性质;4. 研究傅里叶变换的尺度变换性质;5. 研究理想低通滤波对图像的处理效果。6.基本原理:1 定义:二维离散傅里叶变换与反变换正:反:原图象变换图象数字图象的二维离散傅立叶变换所得结果的频率成分分布示意下图所示。即变换结果的左上、右上、左下、右下四个角的周围对应于低频成分,中央部分对应于高频成分。为使直流成分出现在变换结果数组的中央,可采用换位方法显示,将低频分量集中在中心,依此向外推移的是高频分量,便于观察。实验步骤:1. 首先构造一
12、幅黑白二值图像,在128128的黑色背景中心产生一个44的白色方块,如下图1所示,并对其进行傅立叶变换(图2、图3位变换结果的参考图像)。图1 测试图象1 图2 图1的FFT变换结果 图3 增强后的2DFT需要用到的主要函数:fft2、fftshift(将频谱的低频从四角移到中心)注意:由于matlab图像显示函数无法显示复数图像,为了观察变换后的结果,应该对变换后的结果求模(也就是仅显示幅度谱),同时由于求模之后的结果数值范围太大,不易观察,可以利用log函数对其压缩范围,参考示例:B=fftshift(fft2(I); %返回图像I的二维傅立叶变换imshow(log(abs(B)),);
13、 显示频谱,abs是求模函数2. 对图1进行平移,然后再进行傅立叶变换,观察结果。参考图像如下: 图3 图1的平移 图4 图3的傅立叶变换结果3. 对图1进行旋转,然后再进行傅立叶变换,观察结果。参考图像如下: 图5 图1的旋转 图6 图5的傅立叶变换结果旋转函数:imrote()4. 对图1进行缩放,然后再进行傅立叶变换,观察结果.参考图像如下: 图7 图1的放大 图8 图7的傅立叶变换结果 图9 图1的缩小 图10 图9的傅立叶变换结果5. 任意读取一幅自然风光的图像,对其进行傅立叶变换和离散余弦变换,观察结果,然后设计一个理想低通滤波器对图像进行低通滤波,去掉高频分量,之后反变换重构图像
14、,与原图像作对比,并分析其中的原理。参考结果如下: 图11 原图 图12傅立叶变换 图13 低通滤波复原的图像 图14 仅保留低频分量需要用到的主要函数:二维离散余弦变换函数dct2 反变换函数 ifft2/idct2实验报告要求:实验报告要求包括 实验目的、实验内容(概括)、实验步骤(要有具体的程序段)、每一步骤得到的实验结果和数据,以及对实验结果的分析,最后写出实验总结.实验四 图像的边缘检测、分割以及数学形态学处理实验目的:掌握常用边缘检测算子的基本原理和检测效果。通过分析灰度直方图,掌握阈值法对灰度图像进行分割的原理;掌握形态学处理的原理和应用。实验内容:1. 用各种边缘提取算子提取边
15、缘,比较检测出的边缘的特点。2. 通过分析灰度直方图,掌握直方图双峰法对灰度图像进行分割的适用范围。3. 通过对二值化后的图像采用形态学处理(腐蚀、膨胀、开运算、闭运算等),掌握形态学处理的原理和应用.基本原理:1边缘检测在图象处理中,有时用各种专用卷积核来检测图象边界。检测边缘的常用模板算子有:拉普拉斯算子: Sobel算子: Prewitt算子: 2。 灰度门限法图像分割图像分割是图像处理与机器视觉的基本问题之一,其任务是把图像划分成互不交迭区域的集合。这些区域的划分是有实际意义的,它们或者代表不同的物体,或者代表物体的不同部分。图像分割的一个难点在于,在划分之前,不一定能够确定图像区域的
16、数目。设图像f(x,y)的灰度范围属于z1,z2,根据一定的经验及知识确定一个灰度的门限,或者根据一定准则确定z1,z2的一个划分z1,z2,其中z1代表目标,z2代表背景。根据像素的灰度属于这个划分的哪个部分来将其分类,称为灰度门限法,即:如果f(x,y)属于z1,判断(x,y)像素属于目标。如果f(x,y)属于z2,则判断(x,y)像素属于背景。分割门限选择的准确性直接影响分割的精度及图像描述分析的正确性。门限选得太高,容易把大量的目标判为背景,定的太低又会把大量的背景判为目标。因此正确分割门限是很重要的。利用灰度直方图特征确定灰度分割门限的原理:如果图像所含的目标区域和背景区域大小可比,
17、而且目标区域和背景区域在灰度上有一定的差别,那么该图像的灰度直方图会呈现双峰-谷状:如下图所示:其中一个峰值对应于目标的中心灰度,另一个峰值对应于背景的中心灰度.由于目标边界点较少且其灰度介于它们之间。所以双峰之间的谷点对应着边界的灰度,可以将谷点的灰度作为分割门限图1 双峰图3数学形态学数学形态学图像处理的基本思想是利用一个称作结构元素(structuring element)的“探针”收集图像的信息.当探针在图像中不断移动时,便可考察图像各个部分之间的相互关系,从而了解图像各个部分的结构特征。数学形态学中最基本的运算是腐蚀和膨胀。图像A被结构元素B膨胀的运算定义式为: 图像A被结构元素B腐
18、蚀的运算定义式为: 开运算:先腐蚀,再膨胀闭运算:先膨胀,再腐蚀实验步骤:1. 分别利用Sobel算子、prewitt算子、log算子canny算子等对图像进行边缘检测,并比较各边缘检测算子的性能。参考函数:edge() 图1 Sobel算子边缘提取的结果1。 图像的分割(二值化)1) 读取多幅灰度图像,计算直方图,观察哪些图像的直方图具有有双峰特性;2) 对于直方图具有有双峰特性的图像,取直方图谷底处灰度值T作为阈值对图像进行二值化,记录二值化后的二值图像bw13) 取T1T,再对图像进行二值化,并记录结果图像bw2;4) 取T1T,再对图像进行二值化,并记录结果图像bw3;比较分析三个结果图像有什么不同,说明阈值选取对二值化的影响参考函数:im2bw()参考图像:图2 根据直方图选择T=120时的分割结果2。 形态学处理1) 用不同的结构元素对二值图像进行腐蚀并记录结果图像2) 用不同的结构元素对二值图像进行膨胀并记录结果图像3) 对二值图像进行开闭运算1次,2次,记录结果图像并比较参考函数:腐蚀erode() 膨胀dilate() 形态学运算族函数 bwmorph()参考图像: 图3 膨胀的结果实验报告要求:实验报告要求包括 实验目的、实验内容(概括)、实验步骤(要有具体的程序段)、每一步骤得到的实验结果和数据,以及对实验结果的分析,最后写出实验总结。