当前位置:文档之家› 数字图像处理实验指导书

数字图像处理实验指导书

《数字图像处理》实验指导书

适用专业:电信工程

通信工程

自动化

信息与通信工程学院

2011年5月

前言

一、课程性质

本实验课程是计算机科学与技术、电子信息、通信工程、自动化等本科专业的专业实验课程。侧重于机器视觉中的预处理技术——数字图像基本处理,并对图像分析的基本理论和实际应用进行系统训练。

要求学生系统较掌握数字图像处理的基本概念、原理和实现方法,学习图像分析的基本理论、典型方法和实用技术,具备数字图像处理应用编程的初步能力,为在计算机视觉、模式识别等领域从事研究与开发打下扎实的基础。

二、项目设置

为了使学生更好地理解和深刻地把握这些知识,并在此基础上,训练和培养

Matlab编程方面的技能,设置了以下实验项目:

实验项目设置与内容提要

序号实验项目

实验

学时

每组

人数

实验

类型

实验

要求

内容提要

1静态图像增强与平滑

算法设计

42设计必修

1.编程实现灰度直方图

2. 编程实现中值、均值滤波来

增强图像。

2静态图像分割与边缘

检测算法设计

42设计必修

1. 学习常用的边缘检测的方

法。2. 编程实现图像分割的灰

度阈值法。

3静态图像几何变换算

法设计

42设计必修

1.编程实现图像平移旋转错切

等几何变换 2.掌握用不同的插

值法处理空穴问题

4静态图像编码设计42设计任选1.使用MatLab对图像作DCT

压缩;2.使用MatLab对图像作DFT压缩。

5 彩色图像处理方法实

2 2 验证任选

了解颜色空间的基本概念和转

换原理,掌握常用的彩色图像处

理方法:直方图计算,图像增强,

颜色的调整,层的操作等。

6 图像的形态学处理算

法设计

4 2 设计任选

了解腐蚀、膨胀、开运算、闭运

算的基本原理,能使用MA TLAB

对图像进行腐蚀和膨胀操作。

7 图像的频域处理方法

实现

4 2 综合任选

1、学习图像的频域变换方法

2、编程实现在频域中实现图像

的滤波,边缘检测等基本操作。

8视频图像直方图统计

处理方法实现

22综合任选

1.熟悉视频显示程序的运行过

程、控制过程,搞清数据处理、

传输途径。

2.结合实例学习如何在视频显

示程序中增加图像处理算法。

3.了解直方图统计的算法和用

途。

9视频图像直方图均衡

增强算法设计与实现

32设计任选

1.熟悉视频显示程序的运行过

程、控制过程,搞清数据处理、

传输途径。

2.结合实例学习如何在视频显

示程序中增加图像处理算法。

3.了解直方图均衡化增强的算

法和用途。

10视频图像中值滤波算

法设计与实现

32设计任选

1.熟悉视频显示程序的运行过

程、控制过程,搞清数据处理、

传输途径。

2.结合实例学习如何在视频显

示程序中增加图像处理算法。

3.了解中值滤波的算法和用途。

11视频图像边缘检测算

法设计与实现

42设计任选

1.熟悉视频显示程序的运行过

程、控制过程,搞清数据处理、

传输途径。

2.结合实例学习如何在视频显

示程序中增加图像处理算法。

3.了解边缘检测的算法和用途,

学习利用Sobel算子进行边缘检测的程序设计方法。

12视频图像编解码算法

设计

42设计任选

1.学习使用RF-5设计框架构造

应用程序。

2.了解在RF-5平台上调用JPEG

编码、解码库实现可编程控制的

压缩质量和帧率的视频采集、显

示功能。

3.学习运用IDMA规范综合JPEG

编码和解码库。

4.了解使用XDIAS接口实现

JPEG编码、解码库的协调工作。

13运动目标检测算法设

42设计任选

1.学习使用RF-5设计框架构造

应用程序。

2.了解在RF-5平台上调用

DIFF(Difference)算术库。

3.学习运用IDMA规范综合JPEG

编码和解码库。

4.了解使用XDIAS接口实现与

算术库的协调工作。

5.使用邮箱传送控制信息到程

序,从而改变程序运行方式。

三、专业安排

电信工程专业可选修全部实验;通信工程、信息工程和自动化专业选修实验1~实验7。

四、本书特点

通过本课程实验,学生应具备MATLAB编程能力以及数字图像处理相关算法的程序设计能力,还要求学生具备DSP C6000程序编写以及硬件实现的能力。

目录

实验一:静态图像增强与平滑 (6)

实验二:图像分割与边缘检测 (10)

实验三:图像几何变换 (15)

实验四:静态图像编码 (19)

实验五:彩色图像处理 (23)

实验六:图像的形态学处理 (24)

实验七:图像频域处理 (27)

实验八:视频图像处理-直方图统计 (29)

实验九:视频图像处理-直方图均衡化增强 (31)

实验十:视频图像处理-中值滤波 (34)

实验十一:视频图像处理-边缘检测(Sobel算子) (37)

实验十二:视频图像处理-JPEG2编码解码 (41)

实验十三:视频图像处理-运动图像检测 (45)

附录A MA TLAB图像处理基础 (49)

附录B ICETEK-DM642-C-IDK-M硬件安装说明 (55)

附录C ICETEK-DM642-IDK-M实验系统的安装说明 (57)

附录D ICETEK-DM642-IDK-M系统的入门实验 (60)

附录E:实验报告基本要求 (66)

实验一:静态图像增强与平滑算法设计

实验学时:4 实验类型:设计 实验要求:必修

一、实验目的

1. 编程实现图像的灰度直方图;

2. 学习一般的图像增强与平滑方法,掌握常用方法的编程实现,并体会其处理效果; 3.学习使用MATLAB 编程。

二、预习与参考

1. 直方图 (1)灰度直方图

灰度直方图表示数字图像中每一灰度级出现的频数(该灰度级的像素数与图像的总像素数之比)。公式为:

()k k n p r N

=

()1k p r =∑

, k=0,1,2,…,255 (1.1)

式中:k r 为第k 级灰度值,k n 为k r 出现的次数,N 为总像素数。 算法实现步骤:

设原图f 灰度级为L ,图像大小为M×N a 、 定义直方图存放数组h[L];

b 、 初始化数组h[K]=0;k=0,1,…,L-1

c 、 统计h[f(x,y)]++;x=0,1,2,…,M ;y=0,1,2,…,N

d 、 (可选)归一化h[f(x,y)]/=M*N (2)直方图均衡化

直方图均衡化的基本思想是把原始图像的直方图变换成在整个灰度级范围内均匀分布的形式,这样就增加了象素灰度值的动态范围,从而达到了增强图像整体对比度的效果。

直方图均衡化的实现方法:

设f 、g 分别为原图像和处理后的图像。图像的总像素数为N ,灰度级为L 。 ① 求出原图f 的灰度直方图,用向量h 表示。 ② 计算原图的灰度分布概率

N k h k p f /)()(=

k=0,1,2,…,L-1 (1.2)

③ 计算原图灰度的累计分布概率

)()(0

j p k p k

j f a ∑

==

k=0,1,2,…,L-1 (1.3)

其中

0)0(=a p

④ 计算原、新图灰度值的影射关系

?

???=0)(255),(k p j i g a 0),(0

),(=≠j i f j i f (1.4)

2. 中值滤波

中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性空间滤波方法。原理:利用一个含有奇数个像素的滑动窗口,将窗口中心像素点的灰度值用窗口内各点灰度的中值代替。

(1)一维信号的中值滤波

设一给定序列f 1,f 2,…,f N ,用长度为m 的窗口对该序列进行中值滤波处理。方法是从中抽取m 个值:

i v f -,…,1-i f ,i f ,1+i f …,i v f +,

其中,v=(m-1)/2,i f 为窗口的中心值。 a .将这m 个点按其数值大小重新排序; b .序号为中心点的那个数作为滤波输出。 则中值滤波的输出为:

,,{......}

i i v v i v g M ed f f f -+=, i ∈N ,v=(m-1)/2 (1.5)

(2)二维信号的中值滤波

推广至二维离散数字图像,可得到二维中值滤波数学表达式:

}{ij A

ij f Med G = (1.6)

A 为滤波窗口{f ij }为二维数据序列。 (3)中值滤波的特点

a .对某些信号中值滤波具有不变性;

b .中值滤波输出噪声功率与输入噪声的密度分布有关。 注意:边界的处理方法。

三、设计要求

1.编写M-function 实现静态图像的直方图均衡增强算法,要求该程序能对256级灰度图像进

行直方图均衡化处理,显示处理前、后图像及其直方图;

2.编写M-function实现静态图像的中值滤波算法,并对含噪图像进行测试,最后结果显示原图像、加噪声图像和处理后的图像。

四、实验条件

联想图像处理工作站

五、调试及结果测试

第一部分:在MA TLAB环境中编写M-function函数实现静态图像增强与平滑。

1.根据实验内容的要求,画出算法实现的程序流程图,并编写相应程序(1)直方图均衡算法

(2)中值滤波算法

2.调试运行程序,并记录结果。

3.完成实验报告。

第二部分:使用ICETECK-DM642-IDK-M实验系统进行相应的视频图像增强与平滑处理。1.实验准备

(1)连接设备

①关闭计算机和实验箱电源。

②连接ICETEK-5100USBV2.0仿真器一端的黑色插头到ICETEK-DM642-C板上J1插

座(JTAG),电缆上红色线要靠近“J1”丝印。

③连接+5V电源线到ICETEK-DM642-C板上J24插座。

④连接实验箱中视频转接线的输入端连接到选配的摄像头或视频信号输入端子上,将

转接线的输出端(两个接头)分别连接到ICETEK-DM642-C板上J15和J17插座。

⑤连接实验箱中电视显示器接头到专用电视转接线的相应插头,连接转接线的黄色莲

花插头到ICETEK-DM642-C板上J4插座。

⑥用实验箱所配的电源转接线(两端均为带孔的插头)连接实验箱底板上+12V电源输出

插座到选配的摄像头上电源插座。

⑦将电视转接线上电源插头(带孔的黑色插头)插入实验箱底板上+12V电源输出插座。(2)开启设备

①打开计算机电源。

②打开实验箱电源开关。

③附带的USB电缆连接计算机(最好使用PC机机箱后部的USB插座)和仿真器相应接

口,注意仿真器上两个指示灯均亮。

④双击运行桌面上“初始化ICETEK-5100USB仿真器”,在弹出的DOS窗口中观察初始

化操作结果。

如果窗口中最后一行显示“This utility has successfully reset the controller.”,

并提示“按任意键继续…”,表示成功地初始化仿真器,可按键盘上空格键继续下步操作。

如果窗口中没有出现“按任意键继续…”,请关闭窗口,关闭实验箱电源,

再将USB电缆从仿真器上拔出,返回第②步重试。

如果窗口中出现“The adapter returned an error.”,并提示“按任意键继续…”,

表示初始化失败,请关闭窗口重试两三次,如果仍然不能初始化则关闭实验箱电源,再将USB 电缆从仿真器上拔出,返回第②步重试。

(3)设置Code Composer Studio为Emulator方式

参见“Code Composer Studio入门实验”相关部分。

(4)启动Code Composer Studio

双击桌面上“CCS 2(…C6000)”图标,启动Code Composer Studio。成功后

可看到CCS环境界面。

2.打开工程:

直方图均衡化增强工程目录:

C:\ICETEK-DM642-EDULab\Lab522-VideoHistogramEnhance

中值滤波工程目录:

C:\ICETEK-DM642- EDULab \Lab523-VideoMedianFilter

3.浏览工程中源程序并理解含义;

4.编译、连接、下载程序并运行,观察显示;

5.结束运行,退出工程。

六、实验报告要求

实验报告的内容主要包括实验预习、实验记录和实验报告三部分,基本内容详见附件。七、思考题

1.比较均衡化处理前后的图像,并回答为什么数字图像均衡化后其直方图并非完全均匀分布?

2.中值滤波器适用于处理什么样的噪声,为什么?

3.总结本次实验。

实验二:静态图像分割与边缘检测算法设计

实验学时:4 实验类型:设计 实验要求:必修

一、实验目的

1.掌握常用图像边缘检测方法的算法原理及其编程实现; 2.掌握常用图像分割方法的算法原理及其编程实现;

二、预习与参考

【边缘检测】

灰度或结构等信息的突变称为边缘,在空间域可以借助微分算子通过卷积运算来完成,空间域的微分在离散数字图像可以采用差分来近似。

基于一阶导数的边缘检测算子有Roberts 算子、Sobel 算子、Prewitt 算子等,基于二阶导数的边缘检测算子有Laplacian 算子、Wallis 算子,LOG 算子是一种改进的方式,Canny 算子等。几种算子模板分别为:

Roberts 算子模板:

??

??

??-=10

011D ??

??

??-=01

10

2D Sobel 算子模板:

????

?

?????---=12

1

000

121x D

????

?

?????---=10

1

202

101

y D Prewitt 算子模板:

????

?

?????---=11

1

000

111

x D

????

?

?????---=10

1

101

101

y D Laplacian 算子模板:

????

?

?????----=01

141

010

1L LOG 算子:

???????

?

???????

?-------------20

2

408044824844

080424442 其它算法原理请参照教材。 【图像分割】

1. 阈值分割法 阈值方法的数学模型

()()()Th y x f if Th y x f if y x g <≥?

??=, , 01

,

其中,f ( x, y)为原图像, g ( x, y)为分割后的图像,Th 为选定的分割阈值。此方法的关键在于分割阈值的确定。常用的阈值计算方法有:直方图峰谷阈值选取方法、迭代阈值选取、均匀性度量法、最大类间类内方差比法、 聚类方法、p-参数法、类间最大距离法、最大熵方法等,具体算法原理参见教材。 2. 区域分割方法

1)区域生长方法,根据事前定义的准则将像素或子区域聚合成更大区域的过程。基本思想为开始时确定一个或多个象素点作为种子,然后按某种相似性准则增长区域,逐步生成具有某种均匀性的空间区域,将相邻的具有相似性质的象素或区域归并从而逐步增长区域,直至没有可以归并的点或其它小区域为止。

区域内象素的相似性度量可以包括平均灰度值、纹理、颜色等信息。 算法步骤:

⑴对图像进行扫描,找出每个分割区域的种子点,定义相似性准则;

⑵将种子点与其邻域中像素进行相似性测度,将满足测度的邻域像素并入区域; ⑶对新并入区域的像素重复⑵操作; ⑷重复⑵和⑶,直到区域不再增长为止; ⑸返回⑴,重新搜索新区域的起点。

2)区域分裂合并方法,开始时将图像分割为一系列任意不相交的区域,然后将他们进行聚合并/或拆分以满足预定义相似性条件。 算法步骤:

⑴设整幅图像为初始区域,将之分类为4个子块,并计算其属性(灰度均值、方差); ⑵对每一个区域Ri ,如果区域中像素不满足相似性准则,对其进行下一层分裂并计算属性值;

⑶重复步骤⑵,直到没有区域可以分裂;

⑷对于任意两个相邻的区域,如果满足相似性准则,则将这两个区域合并为一个;

⑸重复步骤⑷,直到没有区域可以合并。

3. Hough 变换方法

基本思想是把图像平面上的点对应到参数平面上的线,最后通过统计特性来解决问题。基本原理:

图像空间中,经过点 (xi , yi) 的所有直线为:

b

ax y i i +=

图像空间中的点 (xi , yi) 对应参数空间(ab-空间)中的直线:

i

i y ax b +-=

同一直线上另一点 (xj, yj) 对应参数空间中的直线:

j

j y ax b +-=

图像空间中一条直线上的所有点在参数空间中的直线相交于一点(a’,b’),

因此,图像空间中直线的检测转化为参数空间中对点的检测问题。映射关系如下图所示。

x

y

Image space

point

(x i ,y i )

a

b

Parameter space

line

b= - a x i + y i

x

y

Image space

(x i ,y i )

(x j ,y j )

(x k ,y k )

a

b

Parameter space

a`

b`

b= - x i a+y i

b= - x k a+y k

b= - x j a+y j

实际应用中为了表示x=c 形式的直线,采用极坐标系:

θ

θρsin cos y x +=

x

y

Image space

(x i ,y i )

(x j ,y j )

ρ

θ

(x,y)

Parameter space

ρ

θ

'

ρ'

θθ

θρsin cos j j y x +=θ

θρsin cos i i y x +=

图像空间 X-Y 和参数空间 ρ-? 的建立如下对应关系: ①图像空间的一个点映射为参数空间的一条正弦曲线;

②图像空间中的一条直线,在参数空间映射为一个点 (ρ?, ??) ,该点为直线的斜率和截距;

③图像空间的一条直线上的多个共线点映射为参数空间相交于一点的多条正弦曲线。

据此,要检测图像空间共线点最多的直线,就变成了参数空间相交于一点正弦曲线最多的这个峰值点。这就是Hough 变换检测直线的原理。

三、设计要求

1.编写M-function 函数,分别实现用Roberts ,Sobel 、Prewitt 、Laplacian 、LOG 、Canny

算子进行静态图像边缘检测的算法,并对测试图像进行检测,显示原图像、处理后的图像,观察不同算子的处理效果。

2.灰度阈值分割方法,编写

M-function 函数,首先至少利用两种不同的阈值计算方法计算

测试图像的分割阈值,然后利用计算出的阈值对测试图像进行分割处理,结果显示原图像、处理后的分割图像及相应的分割阈值,观察不同阈值的分割效果。 3.区域分割方法,分别利用区域生长法和区域分裂合并法对图像进行分割处理。 4.Hough 变换方法,利用Hough 变换分别实现对直线和圆的检测。

四、实验条件

联想图像处理工作站

五、调试及结果测试 【边缘检测】

第一部分:在MATLAB 环境中编写M-function 函数实现静态图像的边缘检测。

1.根据实验内容的要求,画出算法实现的程序流程图,并编写相应程序; 2.调试运行程序,并记录结果。

【图像分割】

在MA TLAB环境中编写M-function函数实现静态图像的分割。

根据实验内容的要求,画出算法实现的程序流程图,并编写相应程序;调试运行程序,并记录结果。

记录实验结果并对之进行分析,需要记录以下内容:

1.经调试正确的程序源代码。要求有详细的说明和注释,如程序功能说明、程序中定义的函数说明、程序中定义的参数说明、实验步骤说明等;

2.图像边缘检测和分割处理前后的图片,请对图形窗口加以必要的说明;

3.调试程序时遇到的问题及解决方法。

六、实验报告要求

实验报告的内容主要包括实验预习、实验记录和实验报告三部分,基本内容详见附件。

七、思考题

1.比较不同的边缘检测算子。

2. 基于微分方法的边缘检测算法的依据是什么?

3 如何确定图像的分割阈值?不同的阈值对分割效果的影响?

4.总结本次实验。

实验三:静态图像几何变换算法设计

实验学时:4 实验类型:设计

实验要求:必修

一、实验目的

1.了解图像的基本特性,学习基本的图像处理方法并对处理效果进行评价; 2.学习使用Matlab 编程环境,掌握和图像处理相关的基本函数的用法;

3. 掌握图像平移、镜像、旋转、缩放、错切等几种常见的几何变换的算法原理及其编程实现;并通过实验使学生体会图像几何变换的效果;

4.掌握用不同的插值法处理空穴问题.

二、预习与参考

图像几何变换不改变图像的像素值,只是改变像素所在的几何位置。设原图像为f ,大小为M×N ,变换以后的图像为g 。 1.图像平移

将图像像素点按照要求的偏移量进行垂直或水平方向移动。平移不改变图 像的内容,只改变原图像的位置。

从上到下、从左到右依次计算新图像中的每个像素(x, y )在原图像中对应 的坐标值(x0, y0),即:

??

??-=?-=y

y y x

x x 00 (3.1) 其中,△x 、△y 分别是水平和垂直偏移量。 2.图像镜像

水平镜像:以图像的垂直中轴线为中心对换其左右两部分;

垂直镜像:以图像的水平中轴线为中心对换其上下两部分;

从上到下、从左到右依次计算新图像中的每个像素(x, y )在原图像中对应的坐标值(x0, y0),即:

水平镜像 ???+-==10

0y N y x

x

垂直镜像 ???=+-=y y x M x 0

01 (3.2)

3.图像旋转

一般图像的旋转是以图像的某一点为原点,将图像上的所有像素都绕原点

旋转一个相同的角度θ。如图1所示(以图像中心为原点):

x

y

θ

x

y

θ

F(x0,y0)

G(x,y)

β

r

图1 图像旋转示意图

新图像坐标(x, y )与原图像坐标(x0, y0)的对应关系为:

0000cos sin sin cos x x y y x y θθθθ=-??

=+?

???+-=+=?θθθθc o s s i n s i n c o s

00y x y y x x (3.3) 4.图像错切

图像错切实际上是平面景物在投影平面上的非垂直投影效果,使图形产生

扭变。依据发生扭变的方向不同,分为水平错切和垂直错切两种。错切变换如图2的所示:

y x

y

x

θ

垂直错切

水平错切

1

23

42'4'

1

23

4

3'

4'

图2 错切变换示意图

新图像坐标(x, y )与原图像坐标(x0, y0)的对应关系为:

x 轴方向错切

??

?=-=y y y

d x x x 0

0 θt a n =x d y 轴方向错切

??

?-==x d y y x

x y 0

0 θt a n =y d (3.4) 5.图像缩放

图像缩放是指将给定的图像在x 轴方向按比例缩放fx 倍,在y 轴方向按比例缩放fy 倍,从而获得一幅新的图像。从上到下、从左到右依次计算新图像中的每个像素(x, y )在原图像中对应的坐标值(x0, y0);即:

图像比例缩放所产生的图像中的像素可能在原图像中找不到相应的像素点,这时就需要进行插值处理,通常可用最近邻插值、双线性插值等算法来实现。

(1) 最近邻插值

对通过反变换得到的浮点坐标进行简单的取整操作,得到一个整型坐标,这个整型坐标对应的原图像的像素灰度值就是新图像的像素灰度值。新图像坐标(x, y )和原图像坐标(x0, y0)的关系为:

??

?+=+=]5.0/[]

5.0/[0

0y x f y y f x x (3.5) 其中,fx 、fy 分别是水平和垂直方向的缩放比例,中括号表示对括号内表达式取整。 (2) 双线性插值

对通过反变换得到的浮点坐标,求出此浮点坐标对应原图像f 四个邻域整型坐标的灰度值,然后经过双线性插值得到新图像g 的像素值。示意图如图3的所示:

f([x],[y])

f([x]+1,[y]+1)

f([x],[y]+1)

f([x]+1,[y])

f(x,y)

u

1-u

1-v

v

图3 双线性插值示意图

(,)(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.6)

三、设计要求

数学工具:学会使用Matlab 的图像处理工具箱(Image Processing Toolbox)。

要求学生初步具备使用该软件处理图像信息的能力,并可以利用该软件完成本课程规定的其他实验和作业。

2.编写M-function 实现静态图像的平移变换; 3.编写M-function 实现静态图像的镜像变换; 4.编写M-function 实现静态图像的旋转变换;

5.编写M-function 实现静态图像的缩放变换,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的缩放效果; 6.编写M-function 实现静态图像的错切变换。 7.学习使用ICETECK-DM642-IDK-M 实验系统。

说明:以上5种类型几何变换任选3种在实验课内完成,其它2种在课后完成。

四、实验条件

联想图像处理工作站

五、调试及结果测试

第一部分:在MA TLAB环境中编写M-function函数实现静态图像的几何变换。

1.学习MatLab环境下进行图像处理的基本操作;

2. 根据实验内容的要求,画出算法实现的程序流程图,并编写相应程序;

3.调试运行程序,并记录结果;

4.完成实验报告。

【实验结果记录及分析】

记录实验结果并对之进行分析,需要记录以下内容:

1.经调试正确的程序源代码。要求有详细的说明和注释,如程序功能说明、程序中定义的函数说明、参数说明、实验步骤说明等;

2.几何变换处理前后的图片,请对图形窗口加以必要的说明;

3.实验过程中遇到的问题及解决方法。

六、实验报告要求

实验报告的内容主要包括实验预习、实验记录和实验报告三部分,基本内容详见附件。

七、思考题

1.实验当过程中你采取了哪些插值算法,对其处理效果进行比较。

2.总结本次实验。

实验四:静态图像编码设计

实验学时:4

实验类型:设计

实验要求:选修

一、实验目的

1)理解有损压缩和无损压缩的概念;

2)理解图像压缩的主要原则和目的;

3)了解几种常用的图像压缩编码方式。

4)利用MATLAB程序进行图像压缩。

二、预习与参考

1.图像压缩原理:

图像压缩主要目的是为了节省存储空间,增加传输速度。图像压缩的理想标准是信息丢失最少,压缩比例最大。不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。

信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。

编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。

(1)冗余度压缩方法,也称无损压缩、信息保持编码或嫡编码。具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。

(2)信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。也就是说解码图像和原始图像是有差别的,允许有一定的失真。

应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下3类:

(1)无损压缩编码种类

哈夫曼(Huffman)编码,算术编码,行程(RLE)编码,Lempel zev编码。

(2)有损压缩编码种类

预测编码,DPCM,运动补偿;

频率域方法:正交变换编码(如DCT),子带编码;

空间域方法:统计分块编码;

模型方法:分形编码,模型基编码;

基于重要性:滤波,子采样,比特分配,向量量化;

(3)混合编码。

有JBIG,H261,JPEG,MPEG等技术标准。

本实验主要利用MA TLAB程序进行离散余弦变换(DCT)压缩和行程编码(Run Length Encoding,RLE)。

离散余弦变换(DCT)图像压缩原理

离散余弦变换DCT在图像压缩中具有广泛的应用,它是JPEG、MPEG等数据压缩标准的重要数学基础。

和相同图像质量的其他常用文件格式(如GIF(可交换的图像文件格式),TIFF(标签图像文件格式),PCX(图形文件格式))相比,JPEG是目前静态图像中压缩比最高的。JPEG比其他几种压缩比要高得多,而图像质量都差不多(JPEG处理的图像只有真彩图和灰度图)。正是由于其高压缩比,使得JPEG被广泛地应用于多媒体和网络程序中。JPEG有几种模式,其中最常用的是基于DCT变换的顺序型模式,又称为基本系统(Baseline)。

用DCT压缩图像的过程为:

(1)首先将输入图像分解为8×8或16×16的块,然后对每个子块进行二维DCT

变换。

(2)将变换后得到的量化的DCT系数进行编码和传送,形成压缩后的图像格

式。

用DCT解压的过程为:

(1)对每个8×8或16×16块进行二维DCT反变换。

(2)将反变换的矩阵的块合成一个单一的图像。

余弦变换具有把高度相关数据能量集中的趋势,DCT变换后矩阵的能量集中在矩阵的左上角,右下的大多数的DCT系数值非常接近于0。对于通常的图像来说,舍弃这些接近于0的DCT的系数值,并不会对重构图像的画面质量带来显著的下降。所以,利用DCT变换进行图像压缩可以节约大量的存储空间。压缩应该在最合理地近似原图像的情况下使用最少的系数。使用系数的多少也决定了压缩比的大小。

在压缩过程的第2步中,可以合理地舍弃一些系数,从而得到压缩的目的。在压缩过程的第2步,还可以采用RLE和Huffman编码来进一步压缩。

2)行程编码(RLE)原理:

例如如下这幅的二值图像,

如果采用行程编码可以按如下格式保存

其中10和8表示图像的宽和高。在这个小例子中行程编码并没有起到压缩图像的作用。这是由于这个图的尺寸过小,当图像尺寸较大时行程编码还是不错的无损压缩方法。对于灰度图像和二值图像,用行程编码—般都有很高的压缩率。行程编码方法实现起来很容易,对于具有长重复值的串的压缩编码很有效,例如:对于有大面积的阴影或颜色相同的图像,使用这种方法压缩效果很好。很多位图文件格式都采用行程编码,如TIFF,PCX,GEM,BMP 等。

3. 图像压缩编码的MA TLAB程序语句

相关主题
文本预览
相关文档 最新文档