资源描述
数字图像处理实验讲义06版
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
山东轻工业学院
数字图像处理上机实验指导书
电子信息与控制工程学院
通信工程研究室
2008年12月6日
实验一 Matlab图像处理工具箱的初步练习
实验目的:
熟悉常用的图像文件格式与格式转换;熟悉图像矩阵的显示方法(灰度、索引、黑白、彩色);熟悉图像矩阵的格式转换。
实验内容:
1. 曲线的绘制:联系单窗口多曲线绘制、单窗口多曲线分图绘制、多窗口绘制;
2. 熟悉图像文件的读取、显示和保存;
3. 熟悉常用的图像文件格式,以及各种格式的转换;
4. 了解图像数据的存储形式,掌握在Matlab中获取图像数据的方法.
实验步骤:
1. 曲线的绘制:给出6条曲线分别为:
,,
,,
1) 将绘制在单窗口、同一坐标系中
2) 将绘制在单窗口3个子图中
3) 将分窗口绘制
程序中需要用到的主要函数:
plot、subplot、figure
2. 熟悉图像文件的读取、显示、保存以及格式转换
1) 载入图像trees(matlab中预存的 。mat 文件),观察工作空间,把得到的信息记录下来,理解其中的含义.
需要用到的主要函数:load
2) 将1)中读入的图像显示出来。
需要用到的主要函数:imshow
3) 将1)中读入的图像分别转换成灰度图像、真彩色图像、二值图像,显示并保存成数据文件(。mat)到你的文件夹中,观察工作空间,学会如何将图像数据显示在命令窗口。
需要用到的主要函数:ind2gray、ind2rgb、im2bw、save
4) 从matlab的images文件夹中读取一幅真彩色图像(green。jpg)将其转换到HSV空间和YCrCb空间,并将这些图像保存成图像文件,到你的文件夹中。
需要用到的主要函数:imread、rgb2hsv、rgb2Ycbcr、imwrite
注意:load函数和imread函数、save函数和imwrite函数的区别。
3. 学习使用help功能。打开image processing工具箱,看demo
实验报告要求:
实验报告要求包括 实验目的、实验内容(概括)、实验步骤(要有具体的程序段)、每一步骤得到的实验结果和数据,以及对实验结果的分析,最后写出实验总结.
实验二 数字图像的傅立叶变换及频域滤波
实验目的:
通过对图像进行傅立叶变换及反变换熟悉傅立叶变换的性质;利用频域实现图像信号的滤波运算,了解频域变换对图像的处理效果。
实验内容:
1. 学会如何利用matlab函数对图像进行傅立叶变换DFT和余弦变换DCT,以及反变换;
2. 研究傅里叶变换幅度的平移不变性;
3. 研究傅里叶变换幅度的旋转性质;
4. 研究傅里叶变换的尺度变换性质;
5. 研究理想低通滤波对图像的处理效果。
基本原理:
1. 定义:二维离散傅里叶变换与反变换
正:
反:
原图象
变换图象
数字图象的二维离散傅立叶变换所得结果的频率成分分布示意下图所示。即变换结果的左上、右上、左下、右下四个角的周围对应于低频成分,中央部分对应于高频成分。为使直流成分出现在变换结果数组的中央,可采用换位方法显示,将低频分量集中在中心,依此向外推移的是高频分量,便于观察。
实验步骤:
1. 首先构造一幅黑白二值图像,在128×128的黑色背景中心产生一个4×4的白色方块,如下图1所示,并对其进行傅立叶变换(图2、图3位变换结果的参考图像)。
图1 测试图象1 图2 图1的FFT变换结果 图3 增强后的2DFT
需要用到的主要函数:fft2、
fftshift(将频谱的低频从四角移到中心)
注意:由于matlab图像显示函数无法显示复数图像,为了观察变换后的结果,应该对变换后的结果求模(也就是仅显示幅度谱),同时由于求模之后的结果数值范围太大,不易观察,可以利用log函数对其压缩范围,参考示例:
B=fftshift(fft2(I); %返回图像I的二维傅立叶变换
imshow(log(abs(B)),[]); %显示频谱,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. 任意读取一幅自然风光的图像,对其进行傅立叶变换和离散余弦变换,观察结果,然后设计一个理想低通滤波器对图像进行低通滤波,去掉高频分量,之后反变换重构图像,与原图像作对比,并分析其中的原理。参考结果如下:
图11 原图 图12傅立叶变换
图13 低通滤波复原的图像 图14 仅保留低频分量
需要用到的主要函数:二维离散余弦变换函数dct2
反变换函数 ifft2/idct2
实验报告要求:
实验报告要求包括 实验目的、实验内容(概括)、实验步骤(要有具体的程序段)、每一步骤得到的实验结果和数据,以及对实验结果的分析,最后写出实验总结。
实验三 图像的平均滤波、中值滤波实验
实验目的:
掌握直方图均衡化的原理和方法;掌握平均滤波器、中值滤波的原理,以及对不同强度的高斯噪声和椒盐噪声进行滤波处理效果.
实验内容:
1. 观察各类图像的直方图,并利用直方图均衡方法进行图象增强;
2. 图像的灰度线性变换;
3. 完成对于给定图像加入噪声(高斯噪声和椒盐噪声),观察均值滤波和中值滤波的效果。
基本原理:
1.直方图的定义
图象的灰度直方图是一个函数,表示数字图象中每一灰度级与该灰度级出现的频数(即具有这一灰度级的象素数目)间的对应关系:
M为一幅图象所包含的象素总数;N(b)为图象中灰度值为b的象素总数.通常,以灰度值b为横坐标,N(b)为纵坐标。直方图是图象中象素灰度值的一阶概率分布密度的一种近似。
2.直方图均衡
直方图均衡(histogram equalization)就是通过点运算使输入图像的灰度分布较为均匀,使图像具有较好的视觉效果。设r, s分别为原图和新图的灰度,jr(r), js(s)分别为原图及新图的概率密度函数,则均衡变换为原图像的累积分布函数:
对于离散图像,均衡转换公式为:
其中,Lmax指图像中的最大灰度值(对于灰度图像就是255)。
邻域平均和中值滤波是两种常用的消除图像噪声的图像处理手段。
3、 灰度的线性变换:
就是将图像中所有的点的灰度按照线性灰度变换函数进行变换
4. 均值滤波
用均值滤波可以判断并消除孤立噪声.通常邻域取成N´N方形窗,如N取4,例设f(x, y)、分别表示(x, y)点的实际灰度和经邻域平均后的灰度,Oi (i=1,2,.。。8)表示其邻接各点的灰度,如图1,则邻域平均可表示为:
式中e 是和图象灰度有关的门限.方形窗口沿水平和垂直两个方向逐点移动,从而平滑整幅图象,去除了孤立噪声。简单的邻域平均会模糊图象.
3
2
1
f(x, y)
4
8
6
7
5
图1 象素f(x, y)及其8邻域象素
5.中值滤波
采用邻域平均抑制噪声,在去除噪声的同时,不可避免地会使边缘轮廓模糊,因而使图象中包含的细节信息受到损失.中值滤波在过滤噪声的同时,还能较好地保护边缘轮廓信息,对减少随机脉冲噪声和胡椒面式(pepper—and-salt noise)噪声很有效。
中值滤波的原理是用一个窗口W在图象上扫描,把窗口内包含的图象象素按灰度级升(或降)序排列,取灰度值居中的象素灰度为窗口中心象素的灰度,便完成了中值滤波。
实验步骤:
1. 给定一幅如下的图象(Matlab提供‘pout.tif’),作如下增强处理操作:
统计原图的灰度直方图,并利用直方图均衡方法进行图象增强;
显示直方图函数:imhist()
直方图均衡函数:histeq()
2. 利用Matlab函数imnoise(),在原图上分别叠加高斯噪声和椒盐噪声,对比均值滤波和中值滤波的结果,并对结果做出分析,打开demo观察各滤波器队各类噪声的滤除效果;
均值滤波的滤波模板自行设计,滤波过程可以通过卷积函数conv2()实现。中值滤波函数:medfilt()
以上处理可以从demo里看到演示结果。
图1 原始图像 图2 直方图增强后的图像
图3 原图直方图 图4 直方图均衡后的图像直方图
图5 叠加高斯噪声图 图6 叠加椒盐噪声图
实验报告要求:
实验报告要求包括 实验目的、实验内容(概括)、实验原理、实验步骤(要有具体的程序段)、每一步骤得到的实验结果和数据,以及对实验结果的分析,最后写出实验总结.
实验四 图像的边缘检测
实验目的:
熟悉图像的锐化过程;掌握常用边缘检测算子的基本原理和检测效果.掌握形态学处理的原理和应用。
实验内容:
1. 观察各种模板对应的锐化处理效果;
2. 用各种边缘提取算子提取边缘,比较检测出的边缘的特点.
3. 对二值化后的图像采用形态学处理(腐蚀、膨胀、开运算、闭运算等)。
基本原理:
1、锐化与边缘检测
图像锐化的空间域方法可表示为模板卷积的形式。如可将邻域平均处理看作一个作用于图象f(m,n)的低通滤波器,该滤波器的脉冲响应为H(r, s),用离散卷积表示如下:
k、l由邻域大小决定,一般取k=l=1(即3´3窗口);H(r, s)为加权函数,称为掩模(mask)或模板。这种离散卷积运算等价于用模板中心点逐一对准每一象素f(m, n),然后将模板元素和它所“压上”的图象元素对应相乘,再求和,其结果就是该中心点象素平滑后的输出.图像锐化也可以用类似的方法表示。
用于锐化或检测边缘的常用模板算子有:
拉普拉斯算子:
Sobel算子:
Prewitt算子:
2、形态学处理
数学形态学图像处理的基本思想是利用一个称作结构元素(structuring element)的“探针”收集图像的信息.当探针在图像中不断移动时,便可考察图像各个部分之间的相互关系,从而了解图像各个部分的结构特征。
数学形态学中最基本的运算是腐蚀和膨胀.
图像A被结构元素B膨胀的运算定义式为:
图像A被结构元素B腐蚀的运算定义式为:
开运算:先腐蚀,再膨胀
闭运算:先膨胀,再腐蚀
实验步骤:
1. 分别利用sobel算子和拉氏算子对图像进行锐化,并比较锐化结果;
参考函数:构造滤波器函数fspecial()
基于卷积的滤波函数filter2()
卷积函数conv2()
参考结果图像:
图1 Laplacian锐化算子效果
图2 Laplacian锐化算子增强边缘后的效果
2. 分别利用Sobel算子、prewitt算子、log算子canny算子等对图像进行边缘检测,并比较各边缘检测算子的性能。
参考函数:edge()
图3 Sobel算子边缘提取的结果
3、形态学处理
1) 用不同的结构元素对二值图像进行腐蚀并记录结果图像
2) 用不同的结构元素对二值图像进行膨胀并记录结果图像
3) 对二值图像进行开闭运算1次,2次,记录结果图像并比较
参考函数:腐蚀erode()
膨胀dilate()
形态学运算族函数 bwmorph()
参考图像:
图3 膨胀的结果
实验报告要求:
实验报告要求包括 实验目的、实验内容(概括)、实验步骤(要有具体的程序段)、每一步骤得到的实验结果和数据,以及对实验结果的分析,最后写出实验总结。
15
展开阅读全文