数字图像处理实验指导书.docx
- 文档编号:11789156
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:16
- 大小:436.78KB
数字图像处理实验指导书.docx
《数字图像处理实验指导书.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验指导书.docx(16页珍藏版)》请在冰豆网上搜索。
数字图像处理实验指导书
《数字图像处理》实验指导书
黄剑航编
莆田学院电子信息工程学系
2011年8月
前言
数字图像处理是研究关于数字图像的基本理论、方法,及其在电子、信息领域中应用的学科,是电子信息类本科专业的专业课。
本实验课程围绕数字图像处理这一核心,使学生掌握图像处理的基本理论及其实现方法,提高学生的编程、应用和创新能力,拓宽学生的知识面。
要求学生系统掌握数字图像处理的基本概念、原理和实现方法,学习图像分析的基本理论、典型方法和实用技术,具备数字图像处理应用编程的初步能力,为在计算机视觉、模式识别等领域从事研究与开发打下扎实的基础。
通过本课程实验,学生应掌握MATLAB以及数字图像处理的相关算法。
实验条件:
硬件
PC机,PII以上CPU,256M以上内存;
软件
MATLAB6.5以上版本;提供实验用到的图像。
实验一数字图像的基本操作............................................................1
实验二数字图像插值........................................................................3
实验三数字图像变换........................................................................6
实验四数字图像增强........................................................................9
实验五数字图像彩色处理..............................................................12
实验六数字图像分割(综合性实验)..............................................14
实验一数字图像的基本操作
一、实验目的
熟悉MATLAB中数字图像的不同数据类型,不同图像数据类型之间的转换,掌握数字图像的读取、显示、保存,实现图像翻转,剪裁等一些基本操作,掌握二维矩阵的操作。
熟悉相关的MATLAB函数和help帮助的使用。
二、实验原理
MATLAB中常用的数字图像数据类型有:
uint8,无符号8比特整数,范围为[0,255](每像素一个字节);
uint16,无符号16比特整数,范围为[0,65535](每像素两个字节);
double,双精度浮点数,范围为
(每像素8个字节);
logical,逻辑型,值为0或者1(每像素一个比特)。
MATLAB中所有的计算都可以用double类进行,所以它也是图像处理应用中最常使用的数据类。
uint8数据类也是一种频繁使用的数据类,尤其是在从存储设备中读取数据时,因为8比特图像是实际中最常用的图像。
logical类则主要用在二值图像中,logical类的矩阵中每个元素取值只能是0和1。
图像数据类型之间转换,一种方法是:
B=data_class(A),其中data_class代表上述图像数据类型的任一项。
例如,A是一个uint8类数据数组,则B=double(A)产生了一个双精度数组B;假如C是一个取值范围为[0,255]的double类数组,则命令D=uint8(C)可将其转换为一个unit8数组。
另外一种类型转换的方法是使用类型转换函数,如im2uint8,im2double,mat2gray,im2bw。
这些函数同时具有数据大小缩放功能。
使用的时候注意输入输出数据类型和范围。
具体查看帮助内容。
图像数据在MATLAB中按照一定的数据类型,以矩阵的方式存储、读取和显示。
因此许多有关数字图像的处理就和矩阵的操作相关。
常用的一些命令有:
图像读取,imread;图像保存,imwrite;图像显示,imshow。
具体使用方法同样可以查看帮助内容。
三、实验内容及步骤
1、运行如下程序,观察结果,分析学习程序每一行。
clear
closeall
a=zeros(256);
fori=1:
256
a(:
i)=i-1;
end
a=uint8(a);
imshow(a);
参照上面程序自己编写一个程序,要求显示一幅图像(256×256),像素值从上往下递增。
2、读取MATLAB自带的cameraman.tif图像,将图像上下翻转显示,并将结果图片保存为另外一幅图像。
3、利用im2double函数将unit8类型图像转换为double类型图像,并在MATLAB工作区窗口观察变量类型、数值。
利用im2bw函数将unit8或者double类型图像转换为二进制(logical)类型图像,用imshow显示结果图片,并在MATLAB工作区窗口观察变量类型、数值。
自己举例实验mat2gray用法。
4、剪裁出cameraman.tif图像右下角的128×128大小的图片,并显示、保存。
5、利用max,find函数寻找cameraman.tif图像中像素最大值点的位置和大小。
同理也可以寻找出最小点的位置。
6、求出cameraman.tif图像的像素平均值。
四、实验报告要求
1、具体格式参照“电子信息工程系实验报告”格式。
2、选择以上实验内容中自己体会最深的3个内容写入实验报告。
3、注意实验报告要求分析组织有条理,截图美观,结论正确。
实验二数字图像插值
一、实验目的
学习掌握数字图像放大的插值方法,编程进一步熟悉图像的矩阵操作。
二、实验原理
1、邻近点插值法
在原来图像的每行每列后面加上左边和上面的一行像素值。
实际上这样的处理方式将原来的一个像素点,变成灰度值大小相同的4个像素点。
从而获得了数字图像在空间尺寸上的放大作用。
2、双线性插值法
图1双线性插值法原理图
以图像放大为例说明双线性插值法。
先对竖直方向插值,插值点取在竖直方向相邻像素的中点,这是双线性插值的特殊点,该点插值为相邻像素值的均值。
竖直方向完成插值之后再进行水平方向插值。
即可完成图像的放大作用。
三、实验内容
1、对一个256×256的灰度图像进行隔行隔列抽取,构成大小为128×128,64×64大小的新图像。
2、利用邻近点插值法对数字图像进行插值放大。
3、利用双线性插值法对数字图像进行插值放大,注意插值放大后的图像大小。
4、附加题:
三次立方插值
该方法利用三次多项式
来逼近理论上的最佳插值函数
,其数学表达式为:
上式中的是周围象素沿方向离原点的距离。
待求象素的灰度值由其周围16个点的灰度值加权内插得到。
可推导出待求象素的灰度值计算式为:
其中
图2三次立方插值示意图
四、实验报告要求
1、具体格式参照“电子信息工程系实验报告”格式。
2、实验内容中前3项内容写入实验报告。
实验三数字图像变换
一、实验目的
熟悉傅里叶变换的基本性质,通过程序实现快速傅立叶变换。
了解二维频谱的分布特点,掌握傅立叶变换的性质;掌握离散余弦变换及其应用。
二、实验原理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。
通过实验培养这项技能,将有助于解决大多数图像处理问题。
对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
傅立叶(Fourier)变换的定义
对于二维信号,二维离散傅立叶变换为:
逆变换:
图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法。
实验中用到的主要MATLAB函数包括fft2,abs,fftshift等。
和离散傅里叶变换一样,离散余弦变换(DCT)也是信号处理领域很常见的一种变换。
由于DCT具有很好的能量压缩性能,而且DCT是实数变换,便于工程实现,DCT变换在数据压缩等方面具有广泛的应用。
二维DCT变换对于图像信号具有很强的压缩能力,图像压缩标准JEPG的核心算法就是基于DCT的。
二维DCT变换和逆变换的指令是dct2,idct2。
利用DCT的能量压缩特性,仅使用一部分DCT系数就可以重建信号,并且失真比较小。
二维离散余弦变换的定义由下式表示:
其中
是空间域二维向量的元素,
是变换系数阵列之元素。
二维离散余弦反变换由下式表示:
三、实验内容
1、打开一幅图像(double类型),进行傅立叶变换,显示:
(1)频谱图
(2)中心点搬移之后的频谱图
(3)对中心点搬移之后的频谱进行对数变换之后再显示。
使用对数变换减小了显示动态范围,
,F为变换后的频谱。
2、设计一幅256×256大小的double类型图像,背景像素值为0(黑色),在正中间部分有个10×20大小,像素值为1的白色矩形。
显示其频谱。
3、若不进行频谱搬移,可以对原图像在变换前乘以
,再进行fft2变换,得到一样的结果,验证这一过程。
4.对一幅uint8数据类型的图像进行DCT变换压缩,观察和分析DCT系数的大小和分布特点(可用对数压缩数值动态范围)。
分别设置系数阈值为10,30,50,去除低值系数,重构图像,计算压缩率并对不同系数门限的结果加以分析比较。
四、实验报告要求
1、具体格式参照“电子信息工程系实验报告”格式。
2、提交实验的原始图像和结果图像,并能对相应结果进行分析说明。
实验四数字图像增强
一、实验目的
掌握常见的数字图像增加方法,包括亮度、对比度变换,直方图均衡,拉普拉斯锐化增强法。
学习直方图的绘制方法。
二、实验原理
图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。
其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。
图像增强技术主要有亮度对比度变换,直方图修改处理、图像滤波去噪,图像锐化处理等。
如下图1所示是imadjust函数对应的输入输出亮度映射关系,可以看出gamma<1时候,输入图像低亮度的区域往高亮度值拉伸。
gamma>1反之,从而达到亮度变换,增强图像的目的。
图1亮度变换时对应的输入输出亮度映射关系
直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。
直方图操作能有效地用于图像增强。
直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。
对含有噪声的图像进行滤波处理,也是一种图像增强的常见方法。
数字图像的噪声主要来源于图像的获取(数字化过程)和传输过程。
在数字图像的获取过程中,图像传感器的工作受到各种因素的影响,例如图像获取中的环境条件和传感元器件本身的质量;在数字图像的传输过程中,主要由于传输信道的干扰,而引入噪声污染。
常见的噪声有高斯噪声和椒盐噪声等。
滤波的机理就是在待增强图像中逐点地移动滤波模板,模板在每一点(x,y)处的响应通过事先定义的模板内像素的关系来计算。
如平滑滤波,输出像素值就是在该点周围3×3模板范围内的原始像素的像素值和平均值。
中值滤波,输出像素就是在模板范围内所有像素大小值顺序排列的中值。
锐化的目的是增强被模糊的细节。
锐化是用高通滤波模板来完成,提取出图像高频细节,并和原始图像叠加,从而达到强化边缘、细节的目的。
三、实验内容
1、合理选择参数,利用imadjust函数对bone.tif图像进行亮度变换,从而达到图像增强的目的,对比变换前后的图像。
2、产生如下256×256灰度图像(double类型),像素值水平方向逐渐递增。
利用幂函数
对图像对比度进行变换。
r为原像素,s为变换后像素,
为参数,比较其取值为2.5和0.4时候的结果,并加以分析。
图2灰度水平渐变图
3、利用imhist函数显示pout.tif和pollen.tif图像的直方图。
利用histeq进行直方图均衡。
对比直方图均衡前后图像和直方图。
4、自编程序实现用3×3大小的模板对含有椒盐噪声的lena图像,进行中值滤波去噪,达到图像增强的目的。
注意边界上的滤波问题。
5、使用中心为-8,其他值均为1的3×3大小拉普拉斯滤波器,对moon.tif图像进行滤波增强,突出细节部分。
读取图像之后先将其转换为double类型。
可以使用自编的二维空间滤波函数,也可以使用MATLAB自带的二维空间滤波函数imfilter,其用法可查询帮助。
四、实验报告要求
1、具体格式参照“电子信息工程系实验报告”格式。
2、提交实验的原始图像和结果图像,要求截图美观,实验内容的叙述有条理,加以合理的分析说明。
报告内容至少包含实验内容1、4、5。
实验五数字图像彩色处理
一、实验目的
认识索引图像、真彩色图像并加以显示。
掌握假彩色变换方法和伪彩色处理方法。
二、实验原理
索引图像包括图像矩阵与颜色图数组,其中颜色图是按图像颜色值进行排序后的数组。
对于每一个像素,图像矩阵包含一个值,这个值就是颜色数据组中的索引。
颜色图为M×3双精度值矩阵,各行分别指定RGB单色值。
RGB图像分别用红、绿、蓝三个亮度值为一组,代表每个像素的颜色。
这些亮度直接存在图像数组中,图像数组为m×n×3,m,n代表图像像素的行列数。
伪彩色和假彩色图像处理是图像处理中的两项很实用的技术。
人眼只能区分二十多种不同等级的灰度,但却可以辨别几千种不同亮度的彩色。
伪彩色处理技术,就是将黑白图像变成伪彩色图像,伪彩色图像中的彩色根据黑白图像的灰度级或者其他图像特征人为给定。
假彩色处理就是将一幅彩色图像映射到RGB空间中新位置上的过程。
三、实验内容
1、读取一幅灰度图像,用不同的颜色表进行索引显示。
用到的函数imread,colormap.
标准的颜色映射包含hsv,hotcool,pink,bone,jet,copper等。
用不同的颜色映射对图像加以显示。
2、显示索引图trees.tif程序如下,分析下面程序结果。
[I,map]=imread('trees.tif');
imshow(I);
figure;
imshow(I);
colormap(map);
3、读取'peppers.png'真彩色图像的加以显示,并单独显示其三个分量。
并打乱三个分量的顺序构成新的真彩色图像加以显示,从而实现了假彩色变换。
4、对一幅灰度图像的灰度级别按下图进行变换,映射成RGB三个分量,从而实现灰度图像的伪彩色处理,可选择bone.tif图像和vase.tif图像。
(编程时要注意图像的数据类型的转换)
图1灰度级变换函数
四、实验报告要求
1、具体格式参照“电子信息工程系实验报告”格式。
2、实验内容必须包含上述实验内容完成的各步骤。
注意内容有条理,报告中截图美观,能够说明分析问题,达到实验目的。
实验六:
数字图像分割(综合性实验)
一、实验目的
本实验是综合性实验,结合数字图像的若干预处理技术,综合了课堂上讲授的几种数字图像分割方法,通过编程实现数字图像分割,解决实际问题。
通过综合性实验,达到进一步训练编程能力,提高综合应用知识、解决问题能力的目的。
二、实验原理
数字图像分割是将一幅图像细分为其组成区域或对象。
细分的程度取决于要解决的问题。
本实验考虑简单的单色图像的分割,其分割算法通常基于图像亮度值的两个基本特性:
不连续性和相似性。
在第一种类别中,处理方法是基于亮度的突变来分割一幅图像,如图像中的边缘。
在第二种类别中,主要方法是根据事先定义的准则把图像分割成相似区域。
本实验涉及图像分割原理包括边缘检测,基于全局阈值的分割,基于最佳阈值的分割以及基于区域生长的分割。
详细原理参考课堂讲授内容及其他参考资料。
三、实验内容及要求
1.结合图像滤波和阈值判断的边缘检测
(1)利用Sobel算子计算原图像x,y方向梯度
和
,最终的梯度图像由式
得到,其中f代表输入图像。
程序要求通过将梯度图像的每个像素值和一个特定的阈值T进行比较,从而输出一幅二值图像。
(2)利用上述
(1)步的要求,对图a(血管造影图像)进行边缘检测。
结果产生一幅二值图像大致分割出了图像中部的大血管。
这个过程要求不断重复尝试滤波和阈值的选择。
2.全局阈值图像分割
编写一个全局阈值的程序,按照如下算法,阈值被自适应确定。
输出图像是分割图像(二值图像)。
算法如下:
(1)选择一个阈值T的初始估计值。
(2)用T分割图像。
这样做会生成两组像素:
G1由所有灰度值大于T的像素组成,而G2由所有灰度值小于或等于T的像素组成。
(3)对区域G1和G2中的所有像素计算灰度平均值u1和u2。
(4)计算新的阈值:
T=(u1+u2)/2。
(5)重复步骤
(2)~(4),直到逐次迭代所得的T值之差小于事先定义的参数K。
使用上面程序对图b和图c进行图像分割。
3.最优阈值图像分割
(1)应用课堂上讨论的最优阈值方法,假设目标对象和背景高斯分布中的方差相等。
则单一的最佳阈值为
。
其中u1,u2分别为两个区域的均值,P1和P2是两类像素出现的概率。
(2)编写一个程序,给定一个图像子块,计算其像素的均值和方差。
(3)使用图像b,选择它的一小块目标对象区域子块和背景区域子块,分别计算其均值和方差。
把刚才获得的两个方差取均值,认为是单一方差值。
同时,想方法获得P1和P2的值。
这样,得到了最佳阈值表达式的所有参数。
对图像b进行分割。
并把结果同全局阈值图像分割图b的结果比较。
4.区域生长图像分割
(1)应用区域生长把图像分割成两个区域。
提示:
一种方法就是仅生长一个区域,这样,另外一个区域默认就是第一个区域停止生长之后剩下的区域。
在生成过程的任何一步,只要预先设定的准则满足,则一个新的点将被加入到区域中。
例如,令s代表区域生长过程中任一迭代步骤时的平均灰度值。
一种可能的方法就是,判断一个新的像素点,如果它的像素值和s的差值不超过一个特定的常数K,且该点和当前生长的区域连通,那么该点即可加入生长区域中。
(2)使用图b,选择位于目标对象区域的一小块区域,并计算其均值和方差。
令均值s为起始值。
可以使用标准差的某个倍数作为常数值K。
这样即可开始迭代,进行基于区域生长的图像分割。
四、实验报告要求
1、具体格式参照“电子信息工程系实验报告”格式。
2、实验报告内容必须包含上述实验内容完成的各步骤。
关键要理解各步骤的原理和涉及的知识点。
要求参与综合性、设计性实验的同学要认真书写实验报告有综合设计思路,实现方案,结果说明等,体现各方面知识的综合应用。
注意实验报告内容要有条理,截图美观,数据正确,能够说明分析问题,达到实验目的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)