【论文】基于通信新技术平台的图像处理的实现_第1页
【论文】基于通信新技术平台的图像处理的实现_第2页
【论文】基于通信新技术平台的图像处理的实现_第3页
【论文】基于通信新技术平台的图像处理的实现_第4页
【论文】基于通信新技术平台的图像处理的实现_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 可修改 欢送下载 精品 Word 可修改 欢送下载 精品 Word 可修改 欢送下载 精品 Word毕业论文学号:题目:基于通信新技术平台的图像处理的实现专业:通信技术姓名: 指导老师: 摘要本文主要涉及到数字图像处理的编程实现及其原理。将介绍几种重要、普遍的数字图像处理方法。主要内容有:图像的点处理方法,图像的域处理方法以及图像的正交变换。其中将分别介绍点、域处理中的图像平滑、锐化。在区域处理的局部将主要介绍卷积和中值滤波在图像处理中的运用。最后将着重讲述以傅立叶变换为主的正交变换。关键词:平滑、卷积、傅立叶、中值滤波、锐化SummaryThis text involves how to

2、realize the digital image process by V C+ . It will introduce some kinds of important and wildly used way for digital image process. The main contains: The order processing , the area processing and the transform . The text will introduce the smoothing processing , the sharpening processing in the o

3、rder and area image processing . In the part of area image processing we will mainly introduce the application of and center value filter in the digital image processing . At last we will take you to the importance : transform where the fourier transform is the point .Key words: smooth , sharpen , f

4、ourier , center value filter ,目录:引言.05图像处理的根本方法. 04图像点处理运算中的增强、平滑、锐化概念和实现算法.05图像的直方图.05图像增强.05灰度变化.05图像平滑.06图像锐化.07图像区域处理运算中的增强.08 4.1 中值滤波法.08 4.2 卷积法.09 4.3 图像平滑.10 4.4 图像锐化和清晰.12 4.5 边缘检测和增强.13频域处理 正交变换15 5.1 傅立叶变换.151 傅立叶变换的根本概念162 傅立叶变换的性质173 快速离散傅立叶变换18 5.2 离散余弦变换.211 一维离散余弦变换212 二维离散余弦变换21 5.

5、3 沃尔什哈达玛变换.221 沃尔什函数222 一维离散沃尔什哈达玛变换233 二维离散沃尔什哈达玛变换244 快速沃尔什变换24第六章 结论.25结束语25附件26引言图像是人们对客观世界中的景物的一种描述和记录。几千年前我们祖先创造的象形文字就是图像。人类使用显微镜获得了分子和细胞的图像。照相机的创造,电影、电视技术的出现更是使人们获得了大量的图像。因此,描述和记录人们对客观景物观察所得到的各类图片、照片、绘画、X光胶片等都是图像。可以这么说,图像无时不有,无处不在。图像包括很多信息,它是人们传递信息的一种方式。一幅平面图像所包含的信息首先表现为光的强度。我们把二维空间上点的集合叫做图像。

6、图像处理是指对图像进行变换、传递、存储、增强、复原、编码、显示、重建等各种操作。图像处理分为模拟处理和数字处理。本论文只介绍支子处理。数字处理是利用计算机对离散化了的数字图像进行处理,所以又叫计算机图像处理。数字图像处理的优点是精度高,灵活性强,处理内容丰富,以及可做非线性处理等。其缺点是速度太慢。图像处理的技术应用是相当广泛的,它在国家平安、经济开展、日常生活中充当着越来越重要的角色,对国计民生有着不可忽略的作用。Visual C+.NET是目前最强大的程序开发利器,而数字图像处理正是要利用计算机编程对数字图像进行某些数学运算以提高图像的实用性。因此,利用VISUAL C+.NET来优化数字

7、图像的处理效果就成了人们很自然的想法。图像处理的根本方法 根本的图像处理方法可以分为点处理和区域处理两类。点处理相对较为简单,只能改变图像的灰度分布,但不会改变图像内的空间关系。点处理可以按预定的方式改变图像的灰度直方图。最常用的点处理方法是灰度直方图均衡。区域处理在处理某一像素时,利用与该像素相邻的一组像素,经过某种变换得到处理后图像中某一点的像素值。目标像素的邻域一般是由像素组成的二维矩阵,该矩阵的大小为奇数,目标像素位于该矩阵的中央,即目标像素就是区域的中心像素。经过处理后,目标像素的值为经过特定算法后所得到的结果。区域中心像素周围的那些像素值在二维方向上提供了图像的亮度变化趋势的信息。

8、图像中像素的亮度在一定距离上的变化速率称为图像的空间频率。区域处理将改变图像的空间频域信息,减缓或者增强图像中的某些特定的频率分量。区域处理算法一般是针对灰度图像而进行的,对于RGB彩色图像,可以分别对其R,G,B分量进行处理,最后再组合各颜色分量,以得到彩色输出图像。主要的区域处理法有卷积法、中值滤波法和Sobel边缘检测法。其中卷积算法的应用最为广泛,大局部的区域处理都采用卷积算法来实现。第三章图像点处理运算中的增强、平滑、锐化概念和实现算法3.1图像的直方图图像直方图是图像处理中一种十分重要的图像分析工具,它描述了一幅图像的灰度级内容,任何一幅图像的直方图都包含了丰富的信息,它主要用在图

9、象分割,图像灰度变换等处理过程中。从数学上来说图像直方图是图像各灰度值统计特性与图像灰度值的函数,它统计一幅图像中各个灰度级出现的次数或概率;从图形上来说,它是一个二维图,横坐标表示图像中各个像素点的灰度级,纵坐标为各个灰度级上图像各个像素点出现的次数或概率。如果不特别说明,本讲座中的直方图的纵坐标都对应着该灰度级在图像中出现的概率。我们的例子是在一个对话框中显示一个图像的直方图,为实现该目的,定义了一个名为ZFT的对话框类用来显示图像的直方图,具体实现代码见附件 图像增强影响系统图像清晰程度的因素很多,例如室外光照度不够均匀就会造成图像灰度过于集中;由CCD摄像头获得的图像经过A/D数/模转

10、换,该功能在图像系统中由数字采集卡来实现转换、线路传送都会产生噪声污染等等。因此图像质量不可防止的降低了,轻者表现为图像不干净,难于看清细节;重者表现为图像模糊不清,连概貌也看不出来。因此,在对图像进行分析之前,必须要对图像质量进行改善,一般情况下改善的方法有两类:图像增强和图像复原。图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征,它的目的主要是提高图像的可懂度。图像增强的方法分为空域法和频域法两类,空域法主要是对图像中的各个像素点进行操作;而频域法是在图像的某个变换域内,对图像进行操作,修改变换后的系数,例如付立叶变换、DCT变换等的系数,然后再进行

11、反变换得到处理后的图像。图像复原技术与增强技术不同,它需要了解图像质量下降的原因,首先要建立降质模型,再利用该模型,恢复原始图像。本期讲座我们主要介绍各种增强技术在图像处理系统中的实际应用。1灰度变换简单的说,灰度变换就是指对图像上各个像素点的灰度值x按某个函数T变换到y。例如为了提高图像的清晰度,需要将图像的灰度级整个范围或其中某一段A,B扩展或压缩到A,B;需要显示出图像的细节局部等都要求采用灰度变换方法。灰度变换有时又被称为图像的比照度增强或比照度拉伸。假定输入图像中的一个像素的灰度级为Z,经过T(Z)函数变换后输出图像对应的灰度级为Z ,其中要求Z和Z 都要在图像的灰度范围之内。根据T

12、()形式,可以将灰度变换分为线性变换和非线性变换。具体应用中采用何种T(),需要根据变换的要求而定。对于图像的灰度变换,我们这里介绍一种稍微复杂一点的方法,既直方图均衡化。直方图均衡化是灰度变换的一个重要应用,广泛应用在图像增强处理中,它是以累计分布函数变换为根底的直方图修正法,可以产生一幅灰度级分布具有均匀概率密度的图像,扩展了像素的取值动态范围。假设像素点的原灰度为R,变换后的灰度为S,需要注意的是R、S是归一化后的灰度值,其灰度变换函数T()为: S=T(R);k=0,1, ;式中, 是第j级灰度值的概率, 是图像中j级灰度的像素总数, 是图像中灰度级的总数目, 是图象中像素的总数。对变

13、换后的S值取最靠近的一个灰度级的值,建立灰度级变换表,将原图像变换为直方图均衡的图像。下面是实现图像直方图均衡化函数的源代码见附件: 原始图像的直方图 均衡化后的直方图处理后的图像直方图分布更均匀了,在每个灰度级上图像都有像素点。但是直方图均衡化存在着两个缺点:1变换后图像的灰度级减少,某些细节消失;2某些图像,如直方图有顶峰,经处理后比照度不自然的过分增强。2图像平滑加权均值滤波图像平滑主要是为了消除噪声。噪声并不限于人眼所能看的见的失真和变形,有些噪声只有在进行图像处理时才可以发现。图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。图像中的噪声往往和信号交织在一起,尤其是乘性噪声,如果平

14、滑不当,就会使图像本身的细节如边界轮廓、线条等变的模糊不清,如何既平滑掉噪声有尽量保持图像细节,是图像平滑主要研究的任务。一般来说,图像的能量主要集中在其低频局部,噪声所在的频段主要在高频段,同时系统中所要提取的汽车边缘信息也主要集中在其高频局部,因此,如何去掉高频干扰又同时保持边缘信息,是我们研究的内容。为了去除噪声,有必要对图像进行平滑,可以采用低通滤波的方法去除高频干扰。图像平滑包括空域法和频域法两大类,在空域法中,图像平滑的常用方法是采用均值滤波或中值滤波,对于均值滤波,它是用一个有奇数点的滑动窗口在图像上滑动,将窗口中心点对应的图像像素点的灰度值用窗口内的各个点的灰度值的平均值代替,

15、如果滑动窗口规定了在取均值过程中窗口各个像素点所占的权重,也就是各个像素点的系数,这时候就称为加权均值滤波;对于中值滤波,对应的像素点的灰度值用窗口内的中间值代替。实现均值或中值滤波时,为了简便编程工作,可以定义一个n*n的模板数组。另外,读者需要注意一点,在用窗口扫描图像过程中,对于图像的四个边缘的像素点,可以不处理;也可以用灰度值为0的像素点扩展图像的边缘。附件给出了采用加权均值滤波的图像平滑函数代码3图像锐化图像平滑往往使图像中的边界、轮廓变的模糊,为了减少这类不利效果的影响,这就需要利用图像鋭化技术,使图像的边缘变的清晰。图像銳化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变的清

16、晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算如微分运算就可以使图像变的清晰。从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。为了要把图像中间任何方向伸展的的边缘和轮廓线变得清晰,我们希望对图像的某种运算是各向同性的。可以证明偏导平方和的运算是各向同性的,既:式中 是图像旋转前的坐标, 是图像旋转后的坐标。梯度运算就是在这个式子的根底上开方得到的。图像x,y点的梯度值:为了突出物体的边缘,常常采用梯度值的改良算法,将图像各个点的梯度值与某一阈值作比拟,如果大于阈值,该像素点的灰度用梯度值表示,否那么用一个固定的

17、灰度值表示。我们在对图像增强的过程中,采用的是一种简单的高频滤波增强方法:式中f,g分别为锐化前后的图像, 是与扩散效应有关的系数。 表示对图像f进行二次微分的拉普拉斯算子。这说明不模糊的图像可以由模糊的图像减去乘上系数的模糊图像拉普拉斯算子来得到。 可以用下面的模板H=1,4,1,4,-20,4,1,4,1来近似。在具体实现时,上述模板H中的各个系数可以改变, 这个系数的选择也很重要,太大了会使图像的轮廓过冲,太小了那么图像锐化不明显。实验说明, 选取2-8之间往往可以到达比拟满意的效果。附件给出 等于4的情况下的实现代码第四章 图像区域处理运算中的增强 4.1 中值滤波法中值滤波是一种非线

18、性滤波技术,与其对应的中值滤波器当然也就是一种非线性滤波器。中值滤波在一定条件下可以克服线性滤波器如最小均方滤波、均值滤波等的带来的图像细节模糊,而且对抑制图像中的脉冲干扰和椒盐噪声特别有效。因为这些噪声在图像中往往以孤立点的形式出现,与之对应的像素又比拟少,所以采用中值滤波能有效地取出这些噪声,到达图像增强的目的。中值滤波法一般采用一个含有奇数各点的滑动窗口,对该滑动窗口内的诸像素灰度排序,用其中值代替窗口中心像素原来的灰度值,或者说用局部中值代替局部平均值。具体来说,就是假设有一个N维奇数的离散序列a其中值为m,那么这个中值就会大于、等于个元素的值,同时也小于、等于个元素的值。例如,取一维

19、序列的元素为N=5个,数值分别为80、90、200、110、120。计算的中值m=110,所以2。即这个中值大于80、90这两个值而小于120、200。将m=110放在这5个数中间,对序列重新排序后得80、90、110、120、200。显然,如果200是一个噪声点,通过中值滤波后图像质量就会有很大的改良。一般情况下,序列为N的一维窗口的中值为: median(x)=m如果N为偶数,那么取两个中间数的平均值作为中值。对二维的数字图像,我们可以选择一个大小为2m+1(2m+1)的窗口,求出其中值为:y用这一中值代替窗口中心像素原来的灰度。具体做法与一维情况类似。例如,从以噪声图像中选择一个33窗口

20、,包括9个元素,其数值为:61005363559可以看出,中值是5。5大于0、3而等于5,其中包括3个5;同时5小于6、9、10、63这4个元素。找出扎扃之后,重新排序为:63109655530原来窗口中间像素值为3。现在用中值5代替。将此窗口按行、按列运行即可得到中值滤波后的图像。窗口的形状可为方形、十字形等,如下图。 中值滤波窗口形状以上是通常采用的中值滤波算法,另外还有一些快速算法。例如,Narendra提出对图像先做行方向的一维中值滤波,再做列方向的一维中值滤波方法。该方法得到的结果与二维中值滤波的结果相近,稍微有些差异,但它能大大减少计算量,同时也易于硬件实现。T.S.Huang 等

21、提出对图像用一个NN的滑动窗口进行中值滤波时,每次求中值只要考虑去掉最左列的,补上最右列的像素,其余的像素不变,因此可大大缩小计算量,特别是当N较大时更显示出其优越性。同时,我们知道对于一个有序数列,可用求最大、最小值的方法来求有序数的中值。例如,假设有序数为a,b,c,那么它的中值可写成:Median(a,b,c)=Maxmin(a,b),min(b,c),min(a,c)或 Median(a,b,c)=Minmax(a,b),max(b,c),max(a,c)因为区域中像素值发生随即突变的像素,经排序后将位于队伍的队首或者队尾,因此取得的中位像素值是正常的像素值。所以,中值滤波可有效地除去

22、随即噪声,并得到较好的视觉效果。 卷积法卷积可以简单地看成加权求和的过程。卷积时使用的权用一个很小的矩阵来表示,矩阵的大小是奇数,而且与使用的区域的大小相同。这种权矩阵叫做卷积核,区域中的每个像素分别与卷积核中的每个元素相乘,所有乘积之和即为区域中心像素的新值。比方,对于一个33的区域P与卷积核K卷积以后,区域P的中心像素表示为: 其中 卷积核中各元素叫做卷积系数。卷积核中卷积系数的大小、方向及排列次序决定了卷积的图像处理效果。大多数常用的卷积核都是33的,多有卷积核的行、列都是奇数。进行卷积时会遇到一些较复杂的问题,首先时图像边界的问题。当在图像上逐个移动卷积核时,只要卷积核移到了图像边界,

23、即卷积核悬挂在图像边界上时,就会出现计算上的问题。这时在原图像上就不能完整找到与卷积核中的卷积系数想对应的9个对33的卷积核图像像素。解决这一问题的两个简单的方法是:或者忽略图像边界数据,或者在图像的四周复制图像的边界数据。卷积运算的第二个复杂问题是计算得到的中心像素的动态范围问题。使用大多数卷积核卷积得到的中心像素值都位于像素值的有效范围之内。但也有一些卷积核卷积的结果超出了像素的有效范围。这时要引入比例缩放操作,即对卷积结果进行制定次数的除以2操作。卷积运算的第三个复杂问题是卷积结果像素值的符号问题。当卷积核中包含负的卷积系数时,卷积结果象素值的符号可能为负。负的像素值没有意义,也不能显示

24、,必须进行适当的处理。常用的处理方法如下:将负的结果像素值置0;取负的结果像素值的绝对值作为像素的新值;将所有像素的值都加上一个常数,使所有负的像素值都大于0。对DIB进行图像处理的根底是实现DIB的卷积操作。在具体实现时,应注意一下几点:DIB是以RGB颜色值来存储像素值的,二卷积操作是以像素的灰度值位根底的。所以,应分别用同一卷积核对各像素的R,G,B颜色分量分别卷积,并将3个分量的卷积结果作为像素新RGB值的3个分量。只有在24位DIB中,R、G、B分量值才是以字节为单位分开存放的。因此,为了简化操作,可以先将DIB格式转化为24位。对24位位图卷积后,再将新位图转化为原来的位数格式。由

25、于有的卷积核中的卷积系数是浮点数,如果直接用它们进行运算,那么运算量很大,速度很慢。因此,用一个简单的技巧来解决这一问题。先对卷积核中各卷积系数乘以它们的最小公倍数,得到一个所有的卷积系数都为整数的新卷积核进行操作,然后将结果除以原卷积核各卷积系数的最小公倍数,就可以求得真正的卷积结果,而且运算效率有很大的提高。为此,定义一个结果KERNEL来表示卷积核,其中包含卷积系数数组和卷积系数的最小公倍数。KERNEL的定义如下: / Definitions required for convolution image filtering#define KERNELCOLS 3#define KERN

26、ELROWS 3#define KERNELELEMENTS (KERNELCOLS * KERNELROWS)/ struct for convolute kernel typedef struct int ElementKERNELELEMENTS; int Divisor; KERNEL;其中数组Element是卷积核的系数数组,其中元素个数KERNELELEMENTS等于卷积核中卷积系数的数目行、列数之积;Divisor是卷积系数的最小公倍数。除了第7.1节介绍的“标准卷积之外,有的算法涉及一个“扩展的卷积方法,即涉及两个,甚至更多各卷积核的操作。其算法是用每个卷积核单独求得卷积结果,

27、然后,将所有结果之和或所有结果之中最大值,作为最终结果。函数ConvoluteDIB实现了33卷积核对DIB的卷积操作,能同时支持“标准卷积或“扩展卷积。当参数nKernelNum为1时,使用的是“标准卷积操作,其代码如附件该函数首先用wBitCount来保存DIB的位数,再调用ConvertDIBFormat函数将DIB转化为24位格式。完成卷积后,再次调用ConvertDIBFormat函数将DIB恢复为wBitCount位格式。位了方便地取得DIB中指定位置像素在其数据区中的位置,函数中使用了宏PIXEL_OFFSET,其定义如下:/local use macro#define PIXE

28、L_OFFSET(i,j, nWidthBytes) (LONG)(LONG)(i)*(LONG)(nWidthBytes)+(LONG)(J)*3)4.3 图像平滑低通滤波低通滤波的根本思路是保存图像空间频率的低频成分,减少图像的高频成分。低通滤波可以降低图像中的视觉噪声,同时除去了图像中的高频局部后,图像中那些本来不明显的低频成分就更容易识别了。低通滤波可以用卷积来实现,低通滤波的频率截止点由卷积核的大少及卷积系数决定。用于低通滤波的卷积叫做低通滤波器。低通滤波器具有如下特征:卷积核的行、列数为奇数,通常为3;卷积系数以中心点为中心对成分布;所有的卷积系数都是正数;距中心较远的卷积系数的值

29、较小或者保持不变。如下的LP1、LP2、LP3是三个常用的低通滤波器。它们的一个重要特征是:为了不改变图像的亮度,所有卷积系数之和为1。1/9 1/9 1/9 1/10 1/10 1/10 1/16 1/8 1/161/9 1/9 1/9 1/10 1/5 1/10 1/8 1/4 1/81/9 1/9 1/9 1/10 1/10 1/10 1/16 1/8 1/16LP1 LP2 LP3由于低频滤波消弱了图像的高频局部,图像中像素值的突变被平均值所代替,因此低频滤波使图像变得平滑,在视觉上变得模糊。在定义了对DIB的卷积操作函数后,实现DIB的平滑与锐化就非常简单,只需要定义适合的滤波器即可

30、。下面是利用KERNEL结果定义的3个低通滤波器。KERNEL LP1 = / LP filter #1 1, 1, 1, 1, 1, 1, 1, 1, 1, 9 / Divisor = 9;KERNEL LP2 = / LP filter #2 1, 1, 1, 1, 2, 1, 1, 1, 1, 10 / Divisor = 10;KERNEL LP3 = / LP filter #3 1, 2, 1, 2, 4, 2, 1, 2, 1, 16 / Divisor = 16;实现低通滤波的函数可简单地调用ConvoluteDIB来实现:BOOL LowPassDIB(HDIB hDib,

31、int Strength, int nAlgorithm) switch (nAlgorithm)case FILTER1:return ConvoluteDIB(hDib, &LP1, Strength);case FILTER2:return ConvoluteDIB(hDib, &LP2, Strength);case FILTER3:return ConvoluteDIB(hDib, &LP3, Strength);return FALSE;4.4 图像锐化与清晰高通滤波 高通滤波增强图像的高频空间频率成分,阻挡低通空间频率成分。相对于高频成分来说,低频成分被削弱了。在需要突出图像中的

32、高频成分时,可对图像进行高通滤波。高通滤波可通过卷积来实现,这时使用的卷积核叫做高通滤波器。高通滤波器的根本特征是:卷积核的行、列数为奇数,通常为3;卷积系数以中心点为中心对称分布;中心的卷积系数是正数;中心周围的卷积系数一般是负数或0;卷积系数之和大于0。下面的HP1、HP2、HP3是3个常用的高通滤波器。它们的一个重要特征是所有卷积系数之和为1,以便不改变图像的亮度。 1 1 1 0 1 0 1 2 1 1 9 1 1 5 1 2 5 2 1 1 1 0 1 0 1 2 1HP1 HP2 HP3在高频滤波器中,卷积核中心的卷积系数最大,在处理中起着关键的作用。当该卷积系经过图像中的高频局部

33、即像素值由突变的局部时,由于其值较大,它与像素值的乘积很大,在卷积结果中占有很大的比重。因此,卷积之后,图像中像素的突变变得更加突出,即图像中的像素值的差得到增强;同时,图像中像素值变化更加醒目,在视觉上,就显得更加清晰。但是,高通滤波也同时放大了图像的噪声。首先利用KERNEL结构定义的3个高通滤波器:KERNEL HP1 = / HP filter #1 -1, -1, -1, -1, 9, -1, -1, -1, -1, 1 / Divisor = 1;KERNEL HP2 = / HP filter #2 0, -1, 0, -1, 5, -1, 0, -1, 0, 1 / Divis

34、or = 1;KERNEL HP3 = / HP filter #3 1, -2, 1, -2, 5, -2, 1, -2, 1, 1 / Divisor = 1;实现高通滤波的函数也和实现低通滤波的函数一样,可以简单地调用ConvoluteDIB来实现:BOOL HighPassDIB(HDIB hDib, int Strength, int nAlgorithm) switch (nAlgorithm)case FILTER1:return ConvoluteDIB(hDib, &HP1, Strength);case FILTER2:return ConvoluteDIB(hDib, &

35、HP2, Strength);case FILTER3:return ConvoluteDIB(hDib, &HP3, Strength);return FALSE;45 边缘检测和增强使图像的轮廓更加突出的图像处理方法叫做边缘检测或边缘增强。边缘增强是一种重要的区域处理。在对图像进行特征提取之前,一般都需要先进行边缘检测,然后再进行二值化处理。边缘增强将突出图像的边缘,边缘以外图像区域通常将被削减甚至你被完全去掉了。处理后边界的亮度与原图中边缘周围的亮度变化率成正比。所有边缘增强方法都削减了图像的低频局部,处理后的图像的亮度保持不变,像素值变化缓慢的区域变黑,而像素变化剧烈的区域被突出。边缘

36、增强也可用卷积来实现。实际上,高通滤波就能实现一种边缘增强。用于边缘增强的卷积核的根本特征是:卷积核的行、列数为奇数,通常为3;卷积系数以中心点为中心反对称分布;中心的卷积系数一般为正数;中心周围的卷积系数一般为负数或0;卷积系数之和等于0个别例外。使用不同的卷积核来进行边缘增强可以得到不同的效果。常用的边缘增强方法有平移和差分边缘检测增强、梯度方向边缘增强、Laplace边缘增强和Sobel边缘检测等。所有采用卷积的边缘增强算法都是线性的,而Sobel边缘检测算法那么采用一阶微分的方法。平移和差分边缘增强平移和差分边缘增强可分为垂直边缘增强、水平边缘增强和水平与垂直边缘增强,它们分别使用如下

37、所示的不同卷积核:0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 00 0 0 0 0 0 0 0 0垂直边缘 水平边缘 水平与垂直边缘该方法的根本原理是首先将图像平移一个像素,然后用原图像减去平移后的图像。相减的结果反映了原图像亮度变化率的大小。对于原图像中像素值保持不变的区域,相减的结果为0,即像素为黑;对于图像中像素变化剧烈的区域,相减后得到较大的变化率,对应的像素很亮,而且像素值差异越大,那么得到的像素就越亮。如果相减后得到的像素值为负,那么应取其绝对值,以保证原图像像素比平移后图像像素更亮或更黑时,都能得到有效的增强。要增强垂直方向的边缘时,使用垂直方向卷积核。其

38、结果是,先将图像向左平移一个像素,再用原图像减去平移后图像。当要增强水平方向的边缘时,使用水平方向卷积核。其结果是,先将图像向左上移一个像素,再用原图像减去平移后图像。当要同时增强水平和垂直方向的边缘时,使用水平与垂直方向卷积核。其结果是,先将图像向左上移一个像素,再向左平移一个像素,然后用原图像减去平移后图像。梯度方向边缘增强梯度方向边缘增强用于增强8个不同方向的边缘。8个方向分别是北、东北、东东南、南、西南、西、西北。用于这8个方向的卷积核如下所示:1 1 1 1 1 1 1 1 1 1 1 11 2 1 1 2 1 1 2 1 1 2 11 1 1 1 1 1 1 1 1 1 1 1 北

39、 东北 东 东南1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 南 西南 西 西北如果在卷积核方向上存在着正的像素亮度变化率,那么输出图像上的像素变亮。变化率越大,那么图像越亮。由于卷积核中所有卷积系数之和为0,因此,图像中亮度根本不变的区域空域频率较低的区域的结果像素值将很小,即这些局部经处理后将变黑。Laplace边缘增强 Laplace边缘增强与上述几种方法不同之处在于,它是一种各向同性的增强方法,即其边缘增强的程度与方向无关。 Laplace边缘增强使用的卷积核如下:0 1 0 1 1 1

40、1 1 1 1 2 1 1 4 1 1 8 1 1 9 1 2 4 2 0 1 0 1 1 1 1 1 1 1 2 1LAP1 LAP2 LAP3 LAP4 (4) Sobel边缘检测 Sobel边缘检测是一种非线性的边缘检测算法,效率很高,用途很广。 它的根本方法是在x,y方向上分别使用不同的两个卷积核,如下所示: 1 0 1 1 2 1 1 0 2 0 0 0 1 0 1 1 2 1x方向 y方向 如果使用x,y方向卷积核得出的某一像素的卷积像素值分别是x,y,那么该像素的边界强度q和方向可用如下的公式计算: 这种计算的计算量非常大,在实际应用中,经常采用高效的近似方法。下面介绍其中一种。

41、 设当前考察的区域为 a b cd e fg h I经过其中心点e的直线共有4条,即a-e-I,b-e-h,c-e-g,d-e-f;其中每一条直线都将区域划分为两局部,每一局部有3个像素,称之为一个子区域。例如,直线c-e-g将区域划分为a、b、d和f、h、I两个子区域。分别计算出每条直线的两个子区域平均值之差的绝对值,并将得到的4个值中最大的赋给中心像素e。用Sobel算法对图像中每一像素进行处理后,通常还需要对输出图像做阈值化处理。当中心点像素值大于阈值时,输出像素置白,否那么置黑。最后得到的图像是仅包含边缘信息的黑白二值图像。下面给出边缘增强的实现方法:边缘增强也是用卷积来实现的一种图像

42、处理方法。因此,基于函数ConvoluteDIB可以很方便地实现不同方式的边缘增强处理。首先应定义用于边缘增强的卷积核。附件中有用KERNEL结构表示的平移查分边缘增强、梯度方向边缘增强Laplace边缘增强所使用的一组卷积核定义(附件)实现DIB边缘增强的函数的EdgeEnhanceDIB首先判断指定的边缘增强算法,然后,根据不同的算法调用ConvoluteDIB函数以不同的卷积核进行卷积操作。附件Sobel边缘检测Hough边缘检测的实现方法完全相同,只是使用不同的卷积核而已。它们都是基于多个卷积核的“扩展卷积操作而实现的,因此,需要定义卷积核 结构数组来说明其使用的卷积核。Sobel,H

43、ough边缘检测使用的卷积核数组如附件基于上述卷积核数组,调用ConvoluteDIB函数就能实现Sobel和Hough边缘检测。在EdgeEnhanceDIB函数中增加如下的语句,使该函数支持Sobel和Hough边缘检测:case SOBEL:return ConvoluteDIB(hDib, Sobel, Strength, 4);case HOUGH:return ConvoluteDIB(hDib, Hough, Strength, 4);并预先定义如下常量: #define SOBEL 16 #define HOUGH 17第五章 频域处理 正交变换将图像变换到频域,然后再进行处理

44、,在许多情况下能提高图像处理的速度。一般采用先行正交变换来进行图像的频域变换。图像的正交变换被广泛用于图像特征提取、图像增强、图像复原、图像压缩和图像识别等领域。常用的正交变换有傅立叶变换、余弦变换及沃尔什变换等。5.1傅立叶变换傅立叶变换是一种常见的正交变换,在数字图像处理中得到了广泛的应用。1 傅立叶变换的根本概念傅立叶变换在数学中的定义是非常严格的,它的定义如下:设f(X)为x的函数,如果f(X)满足下面的狄里赫莱条件:具有有限个间隔点;具有有限个极点;绝对可积。那么定义f(x)的傅立叶变换为: 逆变换为: f(x)其中x为时域变量,为频域变量。如果再令,那么上式可写成: 由上面的公式可

45、以看出,傅立叶变换结果是一个复数表达式。设F的实部为R(),虚部为I(),那么: 或者写成指数形式: 其中: 通常称为的傅立叶幅度谱, 的相位谱。傅立叶变换也可以推广到二维情况。如果二维函数f(x,y)满足狄里赫莱条件,那么它的二维傅立叶变换为: 同样,二维傅立叶变换的幅度谱相位谱为: 可以定义为: 通常称E为能量谱。2 傅立叶变换的性质 傅立叶变换有很多重要的性质,这些性质为运算处理提供了方便。可分性一个二维傅立叶变换可用二次一维傅立叶变换来实现,如下所示:线性傅立叶变换是一个线性变换,如下所示:3 对称性如果函数f(x,y)的傅立叶变换为,那么: 4 尺度变换特性如果函数f(x,y)的傅立

46、叶变换为,为两个标量,那么: 5 平移特性傅立叶变换的平移特性如下: 6 共轭性如果F(x,y)的傅立叶变换为,傅立叶变换的共轭函数,那么: 旋转特性如果空间域函数旋转角度为,那么在变换域中该函数的傅立叶变换函数也将旋转同样角度,其数学表达式如下:上式中为极坐标表达式,其中的傅立叶变换结果为。8 能量保持定理能量保持定理也称帕斯维尔定理。该定理的数学 描述如下: 该公式说明傅立叶变换前后能量守恒。9相关定理如果为两个二维时域函数,那么可以定义相关运算“0如下 那么: 其中为函数f(x,y)的傅立叶变换,为函数g(x,y)的傅立叶变换;G的共轭。10卷积定理如果f(x,y)和g(x,y)为两个二

47、维时域函数,那么可以定义卷积运算*如下:那么: 其中为函数f(x,y)的傅立叶变换,为函数g(x,y)的傅立叶变换。 3 快速离散傅立叶变换离散傅立叶变换计算量非常大,运算时间长。可以证明其运算次数正比于N2,特别是当N较大时,其运算时间将迅速增长, 以至于无法容忍。为此,研究离散傅立叶变换的快速算法Fast Fourier Transform, FFT是非常有必要的。 下面介绍一种称为逐次加倍法的快速傅立叶变换算法FFT,它是1965年Cooley和Tukey首先提出的。采用该FFT算法,其运算次数正比于NlbN,当N很大时计算量可以大大减少。例如,FFT的运算次数和DFT的运算次数之比,当

48、N=1024时,比值为1102.4;当N=4096时,比值可达1341.3。 由于二维离散傅立叶变换具有可别离性, 即它可由两次一维离散傅立叶变换计算得到,因此,仅研究一维离散傅立叶变换的快速算法即可。 先将式7-7写成 :式中,W=e-j2N ,称为旋转因子。这样,可将式一维离散傅立叶变换DFT用矩阵的形式表示: 式中,由Wux构成的矩阵称为W阵或系数矩阵 观察DFT的W阵,并结合W的定义表达式W=e-j2N,可以发现系数W是以N为周期的。这样,W阵中很多系数就是相同的, 不必进行屡次重复计算,且由于W的对称性,即:因此可进一步减少计算工作量。 例如,对于N=4, W阵为 由W的周期性得:W

49、4W0,W6W2,W9W1;再由W的对称性可得: W3W1,W2W0。于是可变为 : 可见N=4的W阵中只需计算W0和W1两个系数即可。这说明W阵的系数有许多计算工作是重复的,如果把一个离散序列分解成假设干短序列, 并充分利用旋转因子W的周期性和对称性来计算离散傅立叶变换,便可以简化运算过程,这就是FFT的根本思想。 设N为2的正整数次幂, 即: 如令M为正整数,且:N=2M离散傅立叶变换可改写成如下形式:由旋转因子W的定义可知因此上式可变为:于是式(1)变为 :进一步考虑W的对称性和周期性可知,于是由此,可将一个N点的离散傅立叶变换分解成两个N2短序列的离散傅立叶变换,即分解为偶数和奇数序列

50、的离散傅立叶变换Fe(u)和Fo(u)。 上述FFT是将f(x)序列按x的奇偶进行分组计算的,称之为时间抽选FFT。如果将频域序列的F(u)按u的奇偶进行分组计算, 也可实现快速傅立叶计算, 这称为频率抽选FFT。 用傅立叶变换分析图像处理有许多的优点,应用很普遍。但是傅立叶变换也存在明显的缺点,比方傅立叶变换需要计算复数而不是实数,傅立叶变换的收敛速度很慢等。5.2 离散余弦变换散余弦变换Discrete Cosine Transform, DCT的变换核为余弦函数。DCT除了具有一般的正交变换性质外, 它的变换阵的基向量能很好地描述人类语音信号和图像信号的相关特征。因此,在对语音信号、图像

51、信号的变换中,DCT变换被认为是一种准最正确变换。近年公布的一系列视频压缩编码的国际标准建议中,都把DCT作为其中的一个根本处理模块。除此之外, DCT还是一种可别离的变换。1 一维离散余弦变换一维DCT的变换核定义为 式中,x, u=0, 1, 2, , N1; 一维DCT定义如下: 设f(x)|x=0, 1, , N-1为离散的信号列。 式中,u, x=0, 1, 2, , N1。将变换式展开整理后, 可以写成矩阵的形式, 即 F=Gf 其中一维DCT的逆变换IDCT定义为 式中, x, u=0, 1, 2, , N1。可见一维DCT的逆变换核与正变换核是相同的。 2 二维离散余弦变换考虑

52、到两个变量,很容易将一维DCT的定义推广到二维DCT。其正变换核为 式中,C(u)和C(v)的定义同式7-48;x, u=0, 1, 2, , M1; y, v=0, 1, 2, , N1二维DCT定义如下:设f(x, y)为MN的数字图像矩阵,那么 式中: x, u=0, 1, 2, , M1; y, v=0, 1, 2, , N1。维DCT逆变换定义如下: 式中:x, u=0, 1, 2, , M1; y, v=0, 1, 2, , N1。类似一维矩阵形式的DCT,可以写出二维DCT的矩阵形式如下:F=GfGT 由上式的二维DCT的定义逆变换定义可得两个变换的核相同,且可别离,即:式中 x

53、, u=0, 1, 2, , M1; y, v=0, 1, 2, , N1。 通常根据可别离性, 二维DCT可用两次一维DCT来完成, 其算法流程与DFT类似, 即 沃尔什-哈达玛变换 虽然离散傅立叶变换和离散余弦变换都有快速算法,但是由于它们的快速算法都要进行复数乘法,所以运算速度仍然较慢。在许多的实际应用当中,常常需要更快的变换算法。沃尔什变换就是一种常用的快速正交变换。沃尔什函数沃尔什函数是1923年由美国数学家沃尔什提出的。沃尔什函数系是一个完备正交函数系,其值只能取1和1。从排列次序上可将沃尔什函数分为三种定义方法:一种是按照沃尔什排列来定义按列率排序;另一种是按照佩利排列来定义按自

54、然排序;第三种是按照哈达玛排列来定义。由于哈达玛排序的沃尔什函数是由2nn=0,1,2,阶哈达玛矩阵Hadamard Matrix得到的,而哈达玛矩阵的最大优点在于它具有简单的递推关系, 即高阶矩阵可用两个低阶矩阵的克罗内克积求得,因此在此只介绍哈达玛排列定义的沃尔什变换。 N=2n(n=0, 1, 2, )阶哈达玛矩阵每一行的符号变化规律对应于某一个沃尔什函数的符号变化规律,即N=2n(n=0, 1, 2, )阶哈达玛矩阵的每一行对应于一个离散沃尔什函数,哈达玛矩阵与沃尔什函数系不同之处仅仅是行的次序不同。2n阶哈达玛矩阵有如下形式: 哈达玛矩阵的阶数是按N2n(n0, 1, 2, )规律排

55、列的,阶数较高的哈达玛矩阵,可以利用矩阵的克罗内克积运算,由低阶哈达玛矩阵递推得到,即 矩阵的克罗内克积(Kronecker Product)运算用符号记作AB, 其运算规律如下:设:2. 一维离散沃尔什-哈达玛变换一维离散沃尔什变换定义为 一维离散沃尔什逆变换定义为 式中,Walsh(u, x)为沃尔什函数。假设将Walsh(u, x)用哈达玛矩阵表示,并将变换表达式写成矩阵形式,那么上式分别为:式中,HN为N阶哈达玛矩阵。 由哈达玛矩阵的特点可知,沃尔什-哈达玛变换的本质上是将离散序列f(x)的各项值的符号按一定规律改变后,进行加减运算, 因此,它比采用复数运算的DFT和采用余弦运算的DC

56、T要简单得多。 二维离散沃尔什变换很容易将一维WHT的定义推广到二维WHT。二维WHT的正变换核和逆变换核分别为 式中:x, u=0, 1, 2, , M1; y, v=0, 1, 2, , N1。 维WHT具有能量集中的特性,而且原始数据中数字越是均匀分布,经变换后的数据越集中于矩阵的边角上。因此,二维WHT可用于压缩图像信息。 快速沃尔什变换类似于FFT,WHT也有快速算法FWHT,也可将输入序列f(x)按奇偶进行分组,分别进行WHT。FWHT的根本关系为 WHT的变换核是可别离和对称的, 因此二维WHT也可分为两个一维的WHT分别用FWHT进行变换而得到最终结果,由此便可实现二维的FWH

57、T。综上所述,WHT是将一个函数变换成取值为1或1的根本函数构成的级数,用它来逼近数字脉冲信号时要比FFT有利。同时,WHT只需要进行实数运算,存储量比FFT要少得多,运算速度也快得多。因此,WHT在图像传输、通信技术和数据压缩中被广泛使用。/直方图对话框构造函数;ZFT:ZFT(CWnd* pParent /*=NULL*/): CDialog(ZFT:IDD, pParent)/ZFT为定义的用来显示直方图的对话框类;Width=Height=0;/对话框初始化阶段设置图像的宽和高为0;/对话框重画函数;void ZFT:OnPaint() CRect rect;/矩形区域对象;CWnd

58、*pWnd;/得到图片框的窗口指针;pWnd=GetDlgItem(IDC_Graphic);/得到ZFT对话框内的Frame控件的指针;file:/IDC_Graphic为放置在对话框上的一个Picture控件,并讲类型设置为Frame。pWnd-GetClientRect(&rect);/得到Frame控件窗口的视区域;int i;CPaintDC dc(pWnd);/得到Frame控件的设备上下文;file:/画直方图的x、y轴;dc.MoveTo(0,rect.Height();dc.LineTo(rect.Width(),rect.Height();dc.MoveTo(0,rect.

59、Height();dc.LineTo(0,0);file:/画直方图,num是ZFT的内部数组变量,存放的是图像各个灰度级出现的概率;该数组的各个分量在显示具体图像的直方图时设置;for(i=0;iGetWindowRect(&rect);/获取pWnd窗口对象窗口区域位置;file:/屏幕坐标转换为客户区坐标;ScreenToClient(&rect);file:/判断当前鼠标是否指在直方图内;if(rect.PtInRect (point)int x=point1.x-rect.left;file:/当前鼠标位置减去区域的起始位置恰好为当前鼠标所指位置所表示的灰度级;string.Form

60、at(%d,x);file:/显示当前位置对应的图像的灰度级;pWndText-SetWindowText(LPCTSTR)string);CDialog:OnMouseMove(nFlags, point);/void CDibView:OnImagehorgm()file:/在程序的视类对象内处理显示图像直方图的函数;CDibDoc *pDoc=GetDocument();HDIB hdib;hdib=pDoc-GetHDIB();BITMAPINFOHEADER *lpDIBHdr;/位图信息头结构指针;BYTE *lpDIBBits;/指向位图像素灰度值的指针;lpDIBHdr=( B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论