1、MATLAB 软件课程设计设计题目: 应用图像处理 班 级: 学 号: 姓 名: 指导老师: 设计时间: 2013 年 4 月 8 日-4 月 14 日 - 2 -目录摘要 . 31、概述 42、课程设计及要求 . 42.1 设计要求 42.2 设计任务 .53、系统设计 .53.1 系统方案 53.1.1 结构框图 .53.1.2 系统工作原理 .63.2 单元模块设计 83.2.1 单元模块的设计 .83.2.2 元模块的连接 164、系统调试 .194.1 系统的连接 .194.2 系统的运行 .194.3 运行的结果 .234.4 故障分析 .335、收获、心得 .346、参考文献 .
2、 35- 3 -摘 要应用图像处理系统是一种专门针对图像需求处理的软件设计,图像处理包括图像数字化,图像增强和复原,图像数字编码,图像分割,图像识别和图像理解等。这种系统广泛应用于 IT 行业,尤其是对图像的识别处理有重要的意义。本文针对课程设计的要求,分别设计了常用处理模块、图像压缩模块、噪声处理模块、彩色增强模块、灰度变换模块等五大单元模块。基本实现了图像处理功能的需求。常用处理模块设计了图像的旋转、底片效果、边缘信息、运动模糊处理功能,运用 imrotate,imcomplement,edge,fspecial 等函数来实现。针对课程任务内容一,设计了图像压缩模块。采用了 DCT 变换、
3、小波变换和双线插值等方法,实现了图片压缩的效果。针对课程任务内容二,设计了图像增强模块。采用了 RGB 分量、亮度切割和伪彩色等方法,实现了对图像彩色的增强效果。针对课程任务内容三,设计了灰度变换模块。采用了直方图均衡化和规定化等方法,实现了对图像灰度变换的效果。针对课程任务内容四,设计了噪声处理模块。运用 imnoise 函数,添加了高斯、椒盐、乘性等三种噪声。设计了均值滤波、中值滤波、维纳滤波、线性滤波等滤波器,实现了对加入噪声图像滤波的功能。其中,中值滤波对椒盐噪声的滤波效果好一点。关键词: 图像处理、DCT 变换、小波变换、RGB 分量、亮度切割均衡化、 规定化、 噪声处理- 4 -1
4、概述进入二十一世纪,人类已步入信息社会,新信息技术革命使人类被日益增多的多媒体信息所包围,这也正好迎合了人类对提高视觉信息的需求性。多媒体信息主要有三种形式:文本、声音和图像。从信息传输的发展史(电报、电话、传真、收音机、电视机直至现在的网络)可以看出,人们逐渐将信息传输的重点从声音转向图像,然而图像是三种信息形式中数据量最大的,这给图像的传输和存储带来了极大的困难。MATLAB是由美国Math-Works公司推出的用于数值计算和图形处理的科学计算软件, MATLAB不仅提供了丰富的图形命令和图形函数,而且其面向对象的图形系统具有强大的图形用户界面(Graphic User Interface
5、,GUI)生成能力。这样,用户就可以充分利用系统提供的GUI特性,编写自己需要的图形界面,从而可以高效地制作出理想的应用软件。在MATLAB中有个重要的图像处理工具包,该工具包是由一系列支持图像处理操作的函数组成的,按功能可以分为以下几类:图像显示、图像文件输入与输出、几何操作、像素值统计、图像增强、图像识别、图像滤波、图像变换、邻域和块操作、二值图像操作、颜色映射和颜色空间转换、图像格式转换等。和其他工具包一样,用户还可以根据需要书写自己的函数,以满足特定的需要;也可以将这个工具包和信号处理工具包或小波工具包等其他工具包联合起来使用。本文利用MATLAB提供的交互式GUI开发环境,设计了图像
6、处理软件的主界面和各个子功能界面,实现了图像处理的需求功能。2.课程设计任务及要求2.1 设计任务1.在图像的变换和压缩中,常常用到离散余弦变换(DCT) 。DCT 变换用于图像的压缩实例。请在测试图像中验证你的结论。2.请编程实现图像的真彩色增强。- 5 -3.通过直方图均衡化的方法实现图像的灰度变换,在测试图像中验证你的结论,分析程序结果。4.使用常用的滤波器对数字图像进行处理。如均值滤波器、中值滤波器、维纳滤波器等。5.额外拓展功能,如图像的旋转、底片处理、模糊处理等一些功能。 2.2 设计要求 1.程序代码附有必要的注释。 2.报告中对实验的基本算法原理要进行简要叙述。3.系统设计3.
7、1 系统方案3.1.1 结构框图- 6 -系 统主界面常用处理模块图像压缩模块噪声处理模块加入噪声彩色增强模块滤波处理灰度变换模块图 3-1 图像处理结构框图首先键入guide命令,弹出GUI图形用户设计面板。在该设计面板中,左上角设计了菜单栏选项:文件(打开、保存、退出)、编辑(还原、撤销、截图)、帮助等。主界面分别设计了5个单元模块,包括常用处理模块(旋转、底片处理、边缘信息、模糊处理),图像压缩模块(DCT变换、小波变换、线性插值),噪声处理模块(加入噪声和滤波处理),彩色增强模块(RGB分量法、亮度切割法、伪彩色处理),灰度变换模块(均衡化、规定化、灰度加深)。各单元模块中分别加入控件
8、(Push Button和Pop-up Menu)来实现对各功能的控制操作。系统整体结构框图如上图3-1所示。3.2 单元模块设计 - 7 -主界面包括常用处理模块、图像压缩模块、噪声处理模块、彩色增强模块、灰度变换模块。具体设计如下面所述:3.2.1 常用处理模块的设计常用模块中设计了图片旋转、底片处理、边缘信息、模糊处理等功能。原理简介如下所述:1.图片旋转原理简介通过 imrotate 函数来旋转图像。 imrotate 函数主要包括两个参数:需要旋转的图像和旋转的角度。如果指定一个正的旋转角度,那么 imrotate 函数将使用指定的插值方法和旋转角度将图像逆时针旋转;如果指定一个负值
9、,那么将按顺时针方向旋转。如果命令中没有指定插补方法,则函数采用默认的最近邻插补方法。对于最近邻插补方法,为了确定插值像素点的数据值,用户必须在输入图像中查找到与输出像素相应的点。2. 底片处理原理简介实现底片效果,即完成对二值图像的求补运算,将二值图像进行黑白两色互换,就是把黑色部分变成白的,把白色部分变成黑的。运用 imcomplement 函数来实现图像取反,形成底片效果。3. 边缘信息原理简介图像边缘信息是指其周围像素灰度有阶跃变化或“屋顶”变化的那些像素的集合。边缘广泛存在于物体与背景之间、物体与物体之间、基元与基元之间。经典的边缘提取方法是考察图像的每个像素在某个邻域内灰度的变化,
10、利用边缘邻近一阶或二阶方向导数变化规律,用简单的方法检测边缘,这种方法称为边缘检测局部算子法。如果一个像素落在图像中某一个物体的边界上,那么它的邻域将成为一个灰度级的变化带,对这种变化最有用的 2 个特征(灰度的变化率和方向),它们分别以梯度向量的幅度和方向来表示。边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,也包括方向的确定。设计中采用 edge 函数来实现边缘信息的获取。4. 模糊处理原理简介运 动 模 糊 图 像 中 , 在 运 动 方 向 上 大 多 数 模 糊 图 像 的 背 景 像 素 点 具 有 很 强 的相 关 性 , 即 沿 着 运 动 模 糊 的 轨 迹 , 背 景
11、 像 素 点 的 灰 度 值 逐 渐 变 化 或 者 不 变 。 通- 8 -过 文 献 的 学 习 , 先 对 模 糊 图 像 进 行 一 阶 微 分 , 然 后 进 行 自 相 关 运 算 , 可 得 一 条鉴 别 曲 线 , 曲 线 上 会 出 现 对 称 的 相 关 峰 , 峰 值 为 负 , 两 相 关 峰 之 间 的 距 离 等 于运 动 模 糊 长 度 。3.2.2 图像压缩模块的设计1.DCT 变换原理简介离散余弦变换(DCT)是一种与离散傅立叶变换紧密相关的正交变换,88的二维离散余弦变换可以将图像的空间表达式转换到频率域,只用少量的数据点来表达图像,用f(x,y)表示88的
12、图像块像素值,F(u,v)表示二维离散余弦变换后的值,具体表达式如下: 式 式(3-1)其反变换如下式:式(3-2)其中, 式(3-3)二维离散余弦变换具有可分离性,即可以先对每行进行一维离散余弦变换,再对每列进行一维离散余弦变换,因此,二维离散余弦变换可表示为: 70 162cos162cos,41,xyvu vyuxfCvF 70 162cos162cos,41,xyvuvu vyuxyFCCyxF 其 他 情 况当10u2vCvu 70162cos,21,xu uxvGCvuF- 9 -式(3-4)式(3-5)如果直接按照公式计算,其计算量很大,所以,实际应用中普遍采用快速傅立叶变换(F
13、FT)算法来实现离散余弦变换的快速算法。任何连续的事物堆成函数的傅里叶变换中只含有余弦项,因此余弦变换与傅里叶变换一样,有明确的物理意义。DCT实现将整体图像分成N*N像素块,然后对N*N像素块逐一进行DCT 变换。由于大多数的图像的高频分量较小,相应于高频成分的系数经常为零,加上人眼对高频成分的失真不太敏感,所以可以用更粗的量化。因此传送变换系数所用的数码率要大大小于传送图像像素所用的数码率。到达接收端后再通过反离散余弦变换回到样值,虽然会有一定的失真,但是能基本接受。N代表像素数,一般N=8,8*8的二位数据块经DCT后变成8*8个变换系数,这些系数都有着明确的物理意义:U代表水平像素号,
14、V代表处置像素号。随着U、V值增大,相应的系数分别代表逐步压缩的水平空间频率分量和垂直空间频率分量的大小。在JPEG图像压缩算法里,输入图像被分为8*8小块,然后对每一小块进行二位DCT变换,变换后的系数量化、编码并传输,JPEG格式文件解码量化了的DCT系数,对每一块计算二位逆DCT变换,最后把结果块拼接成一个完整的图像。在DCT变换后舍弃那些不严重影响图像重构接近0的系数。2.小波变换原理简介先对一维小波变换作一简单介绍。设 f(x)为一维输入信号,记, ,这里 与 分别称为定标)2()(/kxxjjjk 2)(/kxjjj )(x函数与子波函数, 与 为二个正交基函数的集合。记 P0f=
15、f,在jkjk第 级上的一维离散小波变换 DWT(Discrete Wavelet Transform)通过正交投影jPjf 与 Qjf 将 Pj-1f 分解为:式(3-kkjkjjjj dcfQPf 6)其中: 70162cos,21,yu uxvxGCvuG- 10 -, ,式(3-102)(pnjnkjkchc102)(pnjnkjcgd )12,.0,.2,1( jNkLj7)这里, h(n)与 g(n)分别为低通与高通权系数,它们由基函数 与)(xjk来确定, p 为权系数的长度。 为信号的输入数据, N 为输入信号的)xjk0nC长度, L 为所需的级数。由上式(3-6) 、 (3
16、-7)可见,每级一维 DWT 与一维卷积计算很相似。所不同的是:在 DWT 中,输出数据下标增加 1 时,权系数在输入数据的对应点下标增加 2,这称为“间隔取样” 。在实际应用中,很多情况下采用紧支集小波(Compactly Supported Wavelets) ,这时相应的尺度系数和小波系数都是有限长度的,不失一般性设尺度系数只有有限个非零值: h1,hN, N 为偶数,同样取小波使其只有有限个非零值: g1,gN。为简单起见,设尺度系数与小波函数都是实数。对有限长度的输入数据序列: (其余点的值都看成 0),它的离散小波变换Mnxc,2,0为:式(3-8)knZnjjkhcc21, 式(3-knZnjjkgcd21 1,0Jj9) 其中 J 为实际中要求分解的步数,最多不超过 log2M,其逆变换为, 式(3-10)knZkjnZkjjnhchc2211,Jj注意到尺度系数和输入系列都是有限长度的序列,上述和实际上都只有有限项。若完全按照上述公式计算,在经过 J 步分解后,所得到的 J+1 个序列和 jkc的非零项的个数之和一般要大于 M,究竟这个项目增加1,0,Jjdk到了多少?下面来分析一下上述计算过程。j=0 时计算过程为: knMkhxc21式(3-11)