数字图像处理实验讲义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理实验讲义
xx学院xx学院
2017年9月
目录
目录 (1)
实验概况 ................................................................ 错误!未定义书签。
实验规则 .. (2)
实验一图像几何变换 (4)
实验二静态图像增强与平滑 (8)
实验三静态图像分割与边缘检测 (12)
实验四图像压缩与编码 (16)
数字图像处理实验概况
一、课程设置目的及要求
通过《数字图像处理》实验,使学生加深对数字图像处理基本理论的理解,并在数字图像处理的基本知识、基本方法和基本技能方面受到较系统的训练,为数字图像处理的应用打下坚实的基础。
二、实验对象
电子科学与技术、光电子科学技术专业本科学生。
三、实验内容和学时分配
本课程开设以下4个实验:
实验一静态图像几何变换 3学时
实验二静态图像增强与平滑 3学时
实验三静态图像分割与边缘检测 3学时
实验四图像压缩与编码 3学时
共计12学时。
实验规则
为了维护正常的实验教学次序,提高实验课的教学质量,顺利的完成各项实验任务,确保人身、设备安全,特制定如下实验规则:
一、实验前必须充分预习,完成指定的预习内容,并写出预习报告,预习要
求如下:
1、认真阅读本实验指导书,分析掌握本次实验的基本原理;
2、完成各实验预习要求中指定的内容;
3、熟悉实验任务。
二、实验时,认真、仔细的写出源程序,进行调试,有问题向指导老师举手
提问;调试成功准备下载时,必须请示指导老师,得到允许方可下载。
三、实验时注意观察,如发现有异常现象(电脑故障或实验箱故障),必须
及时报告指导老师,严禁私自乱动。
四、实验过程中应仔细观察实验现象,认真记录实验数据、波形、逻辑关系
及其它现象,记录的原始结果必须经指导教师审阅签字后,方可离开。
五、自觉保持实验室的肃静、整洁;实验结束后,必须清理实验桌,将实验
设备、工具、导线按规定放好,并填写仪器设备使用记录。
六、凡有下列情况之一者,不准做实验:
1、没有写预习报告者;
2、实验开始后迟到10分钟以上者;
3、实验中不遵守实验室有关规定,不爱护仪器,表现不好而又不服从管
理教育者;
七、实验后,必须认真作好实验报告,下次实验时交实验指导老师批阅。
没
交实验报告者,在规定时间里必须交给实验指导老师,否则视为缺做一次实验。
八、一次未做实验,本实验课成绩视为不及格,原则上与下一届学生进行重
修。
以上实验规则,请同学们自觉遵守,并互相监督。
实验一静态图像几何变换
一、实验目的
图像几何变换是图像处理与分析的基础内容之一。
使学生掌握图像平移、镜像、缩放和旋转等几何变换的方法以及程序实现。
二、实验设备
联想图像处理工作站
三、实验内容及要求
图像几何变换不改变图像的像素值,而是改变像素所在的几何位置,具有独特的方法。
本实验的内容如下:
1.学会使用Matlab的图像处理工具箱(Image Processing Toolbox)。
使学生初步具备使用该软件处理图像信息能力,并可以利用该软件完成本课程规定的其他实验和作业。
2.编程实现图像平移,要求平移后的图像大小不变;
3.编程实现图像的镜像;
4.编程实现图像的比例缩放,要求分别用最近邻插值、双线性插值和双三次插值三种方法来实现,并比较缩放效果;
5.编程实现以任意角度对图像进行旋转变换。
四、实验原理
1.图像平移
从上到下、从左到右依次计算新图像中的每个像素(x, y)在源图像
中对应的坐标值(x0, y0);
即: x0 = x –△x,y0 = y –△y
其中,△x、△y分别是水平和垂直偏移量。
2.图像镜像
从上到下、从左到右依次计算新图像中的每个像素(x, y)在源图像中对应的坐标值(x0, y0);
即:x0 = fWidth – x,y0 = y 水平镜像
x0 = x,y0 = fHeight – y 垂直镜像
其中,fWidth、fHeight分别是图像的宽度和高度。
3.图像比例缩放
图像比例缩放是指将给定的图像在x轴方向按比例缩放fx倍,在y轴方向按比例缩放fy倍,从而获得一幅新的图像。
从上到下、从左到右依次计算新图像中的每个像素(x, y)在源图像中对应的坐标值(x0, y0);即:
x0 = [x / fx + 0.5],y0 = [y / fy + 0.5]
其中,fx、fy分别是水平和垂直方向的缩放比率,中括号表示对括号内表达
式取整。
图像的比例缩放所产生的图像中的像素可能在源图像中找不到相应的像素点,这时就需要进行插值处理,通常可用最近邻插值和双线性插值算法来实现。
(1) 最近邻插值
对通过反变换得到的浮点坐标进行简单的取整操作,得到一个整数型坐标, 这个整数型坐标对应的原图像的像素值就是新图像的像素值。
(2)双线性插值
对通过反变换得到的浮点坐标,求出此浮点坐标对应原图像四个邻域整数型 坐标的灰度值,然后经过双线性插值得到新图像的像素值。
(,)(1)(1)([],[])(1)([]1,[])(1)([],[]1)([]1,[]1)
g x y v u f x y v uf x y v u f x y vuf x y =--+-++-++++(3) 双三次插值
对通过反变换得到的浮点坐标,求出此浮点坐标对应原图像16 个邻域整数 型坐标的灰度值,然后经过双三次插值得到新图像的像素值。
4.图像旋转
一般图像的旋转是以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。
如图所示:
新图像坐标与原图像坐标对应关系:
0000cos sin sin cos x x y y x y θθ
θθ
=-⎧⎨
=+⎩ 00cos sin sin cos x x y y x y θθ
θθ
=+⎧⎨
=-+⎩
两个常量:
010
2cos sin 222sin cos 222
w w h f h w h f θθθθ⎧
=--+⎪⎪⎨⎪=-+⎪⎩ 图像旋转之后会出现许多空洞点,须对这些空洞点进行插值处理。
可用近邻插值,均值插值算法。
五、实验步骤
1.根据实验内容的要求在Matlab 软件中编写相应程序; 2.调试运行程序,并记录结果; 3.完成实验报告。
六、实验结果及分析
记录实验结果并对之进行分析。
七、实验程序清单
写出源程序代码,要求有详细的说明和注释。
如程序功能说明、程序中定义函数说明、程序中定义参数说明、 图形窗口说明、实验步骤说明、作者、编程时间等。
八、实验总结
小结一下本次实验。
实验二静态图像增强与平滑
一、实验目的
1.了解图像的基本特性,学习对图像进行基本的处理并评价处理结果;2.学习一般的图像增强方法,并实际体会图象增强的效果;
3.掌握常用图象增强方法的编程实现;
4.学会使用Matlab软件中基本的图像处理函数;
二、实验设备
联想图像处理工作站
三、实验内容及要求
1.自己编写M-function实现灰度图像的直方图增强算法,要求该程序能对256级灰度图像进行直方图均匀化处理,显示处理前、后图像及其直方图;2.自己编写M-function实现中值滤波算法,并对含噪图像进行测试,显示原图像、加噪声图像和处理后的图像。
3.调用Matlab自带的图像处理函数,用不同的图象增强方法对图像进行处理,对结果进行比较。
4.结合以上实验内容,使用ICETECK-DM642-IDK-M实验系统进行相应的动态视频图像增强处理,观察结果。
四、实验原理
1.直方图
(1)灰度直方图
灰度直方图表示数字图像中每一灰度级出现的频数(该灰度级的像素数与图像的总像素数之比)。
公式为:
()k
k n p r N
=
, ()1k p r =∑ 式中:k r 为第k 级灰度值,k n 为k r 出现的次数,N 为总像素数。
算法:设灰度级为L ,图像为M ×N a 、 定义直方图存放数组pBuffer[L]; b 、 初始化数组pBuffer[K]=0;k=0,1,…,L-1
c 、 统计pBuffer[img(x,y)]++;x=0,1,…,M ;y=0,1,…,N
d 、 (可选)归一化pBuffer[img(x,y)]=M*N (2)直方图均衡化的基本思想
直方图均衡化的基本思想是把原始图像的直方图变换成均匀分布的形式,这样就增加了象素灰度值的动态范围,从而达到了增强图像整体对比度的效果 。
2.中值滤波
中值滤波是一种非线性空间滤波。
原理:利用一个含有奇数个像素的滑动窗口,将窗口中心像素点的灰度值用窗口内各点灰度的中值代替。
(1)一维信号的中值滤波
设一给定序列f1,f2,……,fn ,用长度为m 的窗口对该序开进行中值滤波,方法是从中抽取m 个值i v f -,……,i v f +,v=(m-1/2)为窗口的中心值。
则中值滤波的输出为:
,,{......}i i v v i v g Med f f f -+=, i ∈Z ,v=(m-1)/2
如:
输入:2 2 6 2 1 2 4 4 4 2 4
输出:2 2 2 2 2 2 4 4 4 4 4
(2)二维信号的中值滤波
中值滤波窗口长度为5。
推广至二维离散数字图像,可得到二维中值滤波数学表达式:
{}ij ij G Med f =
A 为滤波窗口(i,j )∈A 。
(3)中值滤波的特点
a .对某些信号中值滤波具有不变性;
b .中值滤波输出噪声功率与输入噪声的密度分布有关。
这里注意:边界的处理方法。
五、实验步骤
1.学习MatLab 的基本操作;
2.根据实验内容(2,3,4)的要求在MATLAB 软件中编写相应程序;
1)直方图均衡
2)中值滤波算法
3)调用Matlab 已有的图像处理函数,对图像进行增强处理
a .调用绘制直方图函数hist(),直方图均衡函数histeq(),中值滤波函数
medfilt2(),并与自己编写的函数运行结果进行比较;
b.运用其他图像增强方法,对图像进行处理,并对结果进行分析比较。
3.调试运行程序,并记录结果。
4.结合以上实验内容,使用ICETECK-DM642-IDK-M实验系统进行相应的动态视频图像增强处理,观察结果。
5.完成实验报告。
六、实验结果及分析
记录实验结果并对之进行分析(说明:需要记录处理前后的图片、程序、试验中遇到的问题)。
七、实验程序清单
写出源程序代码,要求有详细的说明和注释。
如程序功能说明、程序中定义函数说明、程序中定义参数说明、图形窗口说明、实验步骤说明、作者、编程时间等。
八、实验思考题
1.比较均衡化处理前后的图像,并回答为什么数字图象均衡化后其直方图并非完全均匀分布?
2.中值滤波器适用于处理什么样的噪声,为什么?
实验三静态图像分割与边缘检测
一、实验目的
1.学习常用的图像分割与边缘检测方法,并通过实验使学生体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响;
2.观察图像分割的结果,产生对所讲述理论知识的直观认识,加深对图像分割与边缘检测相关理论知识的理解。
3.掌握常用图象分割及边缘检测方法的算法设计及编程实现;
4.学会使用MATLAB软件中关于图像分割与边缘检测的函数;
二、实验设备
联想图像处理工作站
三、实验内容及要求
1.自己编写M-function实现图像阈值分割算法,要求该程序能对256级灰度图像进行处理,显示处理前、后图像;
2.自己编写M-function实现利用Sobel算子进行图像边缘检测的算法,并对图像进行检测,显示原图像、处理后的图像。
3.调用Matlab自带的图像处理函数,用不同的算子对图像进行分割、边缘检测,比较结果。
4.结合以上实验内容,使用ICETECK-DM642-IDK-M实验系统进行相应的动态视频图像分割及边缘检测,观察结果。
四、实验原理
1.图像分割
图像分割是将图像划分成若干个互不相交的小区域的过程, 小区域是某种意义下具有共同属性的像素的连通集合。
图像分割有三种不同的途径:区域法、边界法、边缘法。
最常用的是灰度阈值化处理进行的图像分割:
0(,)(,)255(,)f x y T g x y f x y T ⎧<⎪=⎨≥⎪⎩
域值T 的选取直接影响分割的效果!
(1)直方图双峰域值选择
(2)迭代域值选择
迭代思想:选择一个初始估计值,通过某种策略不断改进(调制)新的估计值,直到满足给定的准则。
迭代步骤:
⑴选择一个初值估计值T ,一般为最大灰度值和最小灰度值的中间值; ⑵使用域值T 分割图像,得到两组像素G1(>=T)和G2(<T );
⑶计算两组像素的灰度均值:μ1和μ2;
⑷计算新域值T =(μ1和μ2)/2;
⑸重复步骤2~4,直到新域值的改变量小于预先定义的参数e 。
(3)最大类间方差法(Otsu )
思想:
⑴将图像中目标和背景看作分属不同类别的像素组成;
⑵判别分析法的目标是确定域值使分属不同类别的像素的类间方差最大。
2.边缘检测
灰度或结构等信息的突变出称为边缘,在空间域借助微分算子通过卷积来完成,而空域的微分在离散数字图像可以采用差分来近似。
基于一阶导数的边缘检测算子有Robert 算子、Sobel 算子、Prewitt 算子等,基于二阶导数的边缘检测算子有Laplace 算子,LOG 算子是一种改进的方式。
Sobel 算子为一对模板:
五、实验步骤
1.根据实验内容的要求在MATLAB 软件中编写相应程序;
1)灰度阈值分割实验(使用迭代阈值选择方法)
2)使用Sobel 算子的边缘检测实验
3)调用Matlab 已有的图像处理函数,对图像进行分割和边缘检测
a .调用边缘检测函数edge ,并与自己编写的函数运行结果进行比较;
b .用其他边缘检测算子和分割方法对图像进行处理,并对结果进行比较。
2.调试运行程序,并记录结果。
3.结合以上实验内容,使用ICETECK-DM642-IDK-M 实验系统进行相应的动态视频图像增强处理,观察结果。
4.完成实验报告。
六、实验结果及分析
记录实验结果并对之进行分析(说明:需要记录处理前后的图片、程序、试验中遇到的问题)。
七、实验程序清单
写出源程序代码,要求有详细的说明和注释。
如程序功能说明、程序中定义函数说明、程序中定义参数说明、图形窗口说明、实验步骤说明、作者、编程时间等。
八、实验思考题
1.小结一下本实验所用的边缘检测方法。
2.基于微分方法的边缘检测算法的依据是什么?
实验四图像压缩与编码
一、实验目的
1.了解图像压缩编码原理;
2.掌握常用的图像压缩算法及编程实现;
3.学会使用MATLAB软件中关于图像压缩编码的函数;
二、实验设备
联想图像处理工作站
三、实验内容及要求
1.自己编写M-function实现图像无损压缩算法,要求该程序能对256级灰度图像进行压缩数据,计算压缩算法的性能;
2.自己编写M-function实现图像有损压缩算法,要求该程序能对256级灰度图像进行压缩数据,计算压缩算法的性能;
3.调用Matlab自带的图像处理函数,用不同的算法对图像进行压缩编码,比较结果。
四、实验原理
图像压缩与编码是在满足一定保真度的要求下,对图像数据的进行变换、编码和压缩,去除冗余数据减少表示数字图像时需要的数据量,以便于图像的存储和传输,即以较少的数据量有损或无损地表示原来的像素矩阵的技术。
图像压缩编码可分为两类:一类压缩是可逆的,即从压缩后的数据可以完全恢复原来的图像,信息没有损失,称为无损压缩编码;另一类压缩是不可逆
的,即从压缩后的数据无法完全恢复原来的图像,信息有一定损失,称为有损压缩编码。
传统数据压缩方法的分类:无损压缩包括统计编码(Huffman编码,Shannon 编码,游程编码,算术编码等)和轮廓编码;有损压缩包括预测编码(脉冲编码调制PCM,Differential PCM,AdaptiveDPCM等)、变换编码(DFT,DCT,KLT,WHT,小波变换等)和混合编码。
统计编码是根据信源的概率分布特性,分配具有惟一可译性的可变长码字,降低平均码字长度,以提高信息的传输速度,节省存储空间。
其基本原理是在信号概率分布情况已知的基础上,概率大的信号对应的码字短,概率小的信号对应的码字长,这样就降低了平均码字长度。
其中Huffman编码具体的编码方法为:①把输入元素按其出现概率的大小顺序排列起来,然后把最末两个具有最小概率的元素之概率加起来;②把该概率之和同其余概率由大到小排队,然后再把两个最小概率加起来,再重新排队;③重复②,直到最后只剩下两个概率为止。
变换编码的基本原理是通过数学变换可以改变信号能量的分布,从而压缩信息量。
以傅里叶变换的概念说明合理的变换可以改变信号能量分布的基本原理。
在变换编码中有以下二个问题值得注意:图像变换方法的选取;子图像大小的选取。
传统的DFT,DCT,KLT和经典小波变换等变换编码在图像变换后会产生浮点数,因而必须对变换后的数据进行量化处理,这样就产生不同程度的失真。
而新一代的整数小波变换(第二代小波变换)采用提升方法能够实现
整数变换,因而能够实现图像的无损压缩。
新的静态图像压缩标准JPEG2000中采用了基于提升方法的整数小波变换。
五、实验步骤
1.选择一组合适的原始图像作为测试图像;
2.根据设计要求选择合适的图像压缩与编码方法;
3.设计压缩与编码算法;
4. 显示原始图像和压缩重构图像;
5. 计算压缩的性能指标:压缩率和保真度;
6.完成实验报告。
六、实验结果及分析
记录实验结果并对之进行分析(说明:需要记录处理前后的图片、程序、试验中遇到的问题)。
七、实验程序清单
写出源程序代码,要求有详细的说明和注释。
如程序功能说明、程序中定义函数说明、程序中定义参数说明、图形窗口说明、实验步骤说明、作者、编程时间等。
八、实验思考题
1.DFT与DCT的性能比较;
2.讨论同一算法对不同原始图像压缩性能的影响。