您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 算法参考20150319
毕业论文1第3章离散余弦变换及DCT域图像水印算法3.1离散余弦变换在前面章节中已经有讲到数字水印算法的类型,由于本实验中对数字图像的设计与实现是基于离散余弦变换理论基础知识,因此,下面主要为对离散余弦变换进行一些基本的概述。3.1.1离散余弦变换的原理DCT是英文DiscreteCosineTransform的简称,DCT技术是一种在数据压缩中常用的变换编码方法。它把正交矩阵的时序信号变为频率信号,是一种很近似于傅里叶变换的正交变换。这种变换具有输入序列的功率(平方和)同变换序列的功率相等的特点。也就是说,如果在某一地方由于变换导致功率集中的话,那么其它部分的功率将变小。图像信号具有在低频段时功率集中的特性,使高频段的功率变小。另外,人眼对高频段信号的视觉特性也不太灵敏。利用这些特性,可对低频段部分进行细量化,而对高频段部分进行粗量化。由于任何连续的实对称函数的傅里叶变换中只含有余弦项。因此,DCT与傅里叶变换一样有很明确的物理意义。DCT先将整体图像分成N×N像素块(一般N=8,即64个像素块),再对N×N块像素逐一进行DCT变换,其转换示意图如图3-1所示:DCTxuyv毕业论文2图3-1DCT变换示意图其中N代表像素数,一般N=8×8的二维数据块经DCT后变成8×8个变换域系数,这些系数都有明确的物理意义。其中u代表水平像素号,v代表垂直像素号。如当u=0,v=0时,T(0,0)是原来的64个样值的平均值,相当于直流分量,随着u、v值增加,相应系数分别代表逐步增加的水平空间频率分量和垂直空间频率分量的大小。由于大多数图像高频分量较小,相应于图像高频成份的系数多数为零,再加上对高频成份的失真不太敏感,可以用更粗的量化,在保证所要求的图质下,舍弃某些次要信息,这样,传送变换系数所用的数据率要大大小于传送像素所用的数据率。数据传送到接收端后,再通过反离散余弦变换(反向DCT即IDCT)变回到样值。这样做虽然会有一定的失真(也就是说,这种压缩方式是有损的),但这种失真完全是人眼可以接受的。3.1.2离散余弦变换的定义设数字图像是具有M行N列的一个矩阵。为了同时减弱或去除图像数据相关性,可以运用二维DCT,将图像从空间域转换到DCT变换域。根据原理,二维离散余弦变换(DCT)定义如下:NlnMkmnmXlckcMNlkYMmNn2)12(cos2)12(cos),()()(2),(1010(3-1)式中:m,k=0,1,…,M-1;n,l=0,1,…,N-1。1,,2,11021)(Mkkkc其中函数1,,2,11021)(Nkklc二维逆离散余弦变换(IDCT)的定义如下:10102)12(cos2)12(cos),()()(2),(MKNLNlnMkmlkYlckcMNnmX(3-2)式中:m,k=0,1,…,M-1;n,l=0,1,…N-1。毕业论文31,,2,11021)(Mkkkc其中函数3.2基于DCT域的图像水印算法3.2.1DCT域图像水印算法的背景在数据库中存储和国际互联网上传输的水印图像一般会被压缩,有时达到很高的压缩比。因此,数字水印算法所面临的第一个考验就是压缩。JPEG和EZW(EmbeddedZero-TreeWavelet)压缩是最常见的两种压缩方法。JPEG是基于离散余弦变换域的压缩方法,而EZW是基于小波变换域的压缩方法。前人的研究证明采用与压缩算法相同的变换域水印方法,对于压缩的稳健性较强。因此,研究图像文件水印算法主要集中在变换域算法及利用人眼视觉特性上。离散余弦变换(DiscreteCosineTransform)属于正交变换图像编码方法中的一种。正交变换图像编码始于1968年。当时安德鲁斯(Andrews)等人发现大多数自然图像的高频分量相对幅度较低,可完全舍弃或者只用少数码字编码,提出不对图像本身编码,只对其二维傅立叶(DFT)系数进行编码和传输。但DFT是一种正交变换,运算量很大,常常使实时处理发生困难,第二年他们就用Walsh-Hadamard变换(WHT)取代DFT可以使运算量明显减少,这是因为WHT变换只有加减法而无需乘法。但是更有意义的是离散余弦变换和离散正旋变换的出现,它们具有快速算法,精确度高。其中最重要的是1974年提出的DCT,因为其变换矩阵的基向量很近似于托伯利兹矩阵的特征向量,而托伯利兹矩阵又体现了人类语言及图像信号的相关性。因此,DCT常常被认为是语音与图像信号变换的准最佳变换。图像是二维的,所以在研究时主要用到二维DCT,以及二维IDCT来对图像进行处理。3.2.2DCT域图像水印算法的特点在基于DCT的变换编码中,图像是先经分块(8×8或16×16)后再经DCT,这种变换是局部的,只反映了图像某一部分的信息。当然也可以对整幅图像的特点,但是运算速度比分块DCT要慢。图像经DCT后,得到的DCT图像有三个特点:(1)系数值全部集中到0值附近,动态范围很小,这说明用较小的量化比特数毕业论文4即可表示DCT系数。(2)DCT变换后图像能量集中在图像的低频部分,即DCT图像中不为零的系数大部分集中在一起(左上角),因此编码效率很高。(3)没有保留原图像块的精细结构,从中反映不了原图像块的边缘、轮廓等信息,这一特点是由DCT缺乏时局域性造成的。如图3-2是原始图像,经过DCT变换后的系数分布的图像为下图3-3。其图形如下图所示:图3-2原始图像图3-3变换后的DCT域系数分布由图3-2可以看出,两条线划分出图像的低频、中频和高频分别所在的矩形区域。可以得出,图像DCT变换后大部分参数接近于零,只有左上角的低频部分有毕业论文5较大的数值,中频部分参数值相对较小,而大部分高频参数值非常小,接近于零。3.2.3DCT域图像水印算法的发展基于DCT变换图像数字水印技术始于上世纪90年代。较早利用分块DCT的水印技术是Koch.E和Zhao.J的文章,他们的水印方案是用一个密钥随机的选择图像的一些分块,在频域的中频上稍稍改变一个三元组来隐藏二进制序列信息。这种方法对有损压缩和低通滤波是稳健的。Cox等人提出了数字水印算法,即将图像进行分块处理,块的大小为8×8。然后利用一个中频段的DCT系数进行变换,再将水印嵌入到预先设定的低频分量中,水印信号由高斯分布的实数序列组成,并通过空间掩蔽来验证水印是否可见。水印的测试需要原始图像和原始水印。该方法不仅隐蔽性好,兼容JPEG、MPEG标准,而且对JPEG压缩、噪声和剪切等攻击具有较好的稳健性。自从离散余弦变换的基本思想被提出,基于离散余弦变换的数字水印算法出现了很多,主要思路是,在DCT变换的中频系数中嵌入水印,既保证了水印的不可见性,又保证了水印的鲁棒性,达到了一个平衡。基于DCT变换的水印算法有许许多多的变种,它们分别是针对不同的应用需求、抵抗不同种类的攻击而设计的。故DCT常常被认为是对语音和图像编码的最佳变换,同时DCT算法较易于在数字信号处理器中快速实现,因此它目前在图像编码中占有重要的地位。毕业论文6第4章基于DCT域图像数字水印算法设计4.1水印与载体图像的选取数字水印本身可以分为两种,一种是包含了如版权所有者、合法使用者、日期等具体信息,一种是采用伪随机序列作为水印,检测时只需要判断水印是否存在。因此,虽然数字水印的形式有很多种,但大致上经常使用的有0-1比特序列水印与图像水印。下面分别介绍两种水印:(1)0-1比特序列水印:产生0-1比特序列水印采用的是混沌现象,这是在非线性动力系统中出现的确定性的、类似随机的过程,这种过程既非周期又不收敛,并且对初始值有极其敏感的依赖性。(2)图像水印:另一种方法是使用图像作为水印信息。使用图像水印的一般做法是将该图像按像素提取转化为一维数组,然后对其使用密钥进行加密,密钥一般采用MATLAB程序自带的随机数组产生工具生成的伪随机序列作为嵌入图像的水印信号的产生密钥。在图像水印中主要用二值图像,二值图像的主要特点为:一是其每个像素不是黑就是白,其灰度值没有中间过渡的图像;二是其一般用来描述文字或者图形,其优点是占用空间少,缺点是,当表示人物,风景的图像时,二值图像只能描述其轮廓,不能描述细节,这时候要用更高的灰度级;三是其每个像素只有两个可能值的数字图像,人们经常用黑白和单色图像表示二值图像,但是也可以用来表示每个像素只有一个采样值的任何图像,例如灰度图像等。二值图像中所有的像素只能从0和1这两个值中取,因此在MATLAB中,二值图像用一个由0和1组成的二维矩阵表示。这两个可取的值分别对应于关闭和打开,关闭表征该像素处于背景,而打开表征该像素处于前景。以这种方式来操作图像可以更容易识别出图像的结构特征。根据现实生活中我们经常接触到的图像来看,一般静态图像的基本类型有很多种,诸如BMP,JPG,JPEG,PNG,GIF等,这里图像研究使用的主要是熟为人知的BMP毕业论文7与JPG格式的图像。不同的图像之间可以根据一定的原理方法进行相互转换。这些图像在MATLAB系统中可以很方便的以矩阵的方式表示出来,然后对它们进行各种图像处理。本文选取JPG格式的512×512点的经典“lena”灰度图像作为数字水印的原始载体图像,专门制作的64×64的BMP格式的二值图像作为水印图像。4.2水印的生成与嵌入4.2.1水印的生成在做数字水印的嵌入实验中,我们首先需要选取适合本次实验所需的数字图像水印。在本文中,我使用自制的64×64大小的BMP格式的二值灰度图像作为水印图像。其具体的生成方法为:首先,我们根据本次数字图像水印实验的需要来设定他的大小,并在制图工具中做出该图像,如在本文中的图像水印为“西南科技大学”的静态文字,然后将其大小设置为64×64并保存为1位的BMP格式图像。其次,我们用MATLAB工具中的工具函数将此图像读入,将其表示为与图像一一对应的二维数组。最后,我们将此二维数组转化为与之相对应的一维数组。因此,根据本实验的要求,此一位数组序列就对应为本次实验所需要的水印序列。在后面的实际操作中,我们将会用到数字图像水印。4.2.2水印的嵌入位置选取在载体图像与水印图像都已经选取好的情况下,接下来我们就是将水印图像根据一种算法嵌入到载体图像中去,即水印的嵌入。通常,变换域水印处理是对原始载体进行各种各样的频域变换后嵌入水印,可以嵌入大量比特的数据而不会导致被我们的肉眼所察觉。本文采用的算法为在上文中已经提到的离散余弦变换(DCT)。在将载体图像分块之后,利用DCT块的区域特性来选择相应位置的系数根据人眼的视觉特性我们知道,低频区域对视觉最为敏感,在此处隐藏秘密信息会降低算法的隐蔽性。而高频区域是图像压缩的主要对象,在此处隐藏达不到较好的鲁棒性。因此,为了兼顾隐秘图像的隐蔽性和鲁棒性,中频区域是最佳的隐藏点,通过修改中频DCT系数来实现信息隐藏。本论文假设给定的灰度级宿主图像为f(i,j),然后将f(i,j)分成8×8大小的互不覆盖毕业论文8的图像块,并对其进行正向DCT变换,每个图像块可对应64个DCT系数。在运用DCT方法的数字水印技术中,为了兼顾水印的不可见性与鲁棒性,通常将水印嵌入到DCT系数的中频段,或对中频DCT系数进行修改。由于水印图像中的像点取值只存在“0”和“1”两种情况,故可根据水印各点取值情况,调整宿主图像对应的DCT块中较靠近的两个DCT系数的位置,以符合一定的大小关系。具体而言,即假如在Z字形扫描的路径中,宿主图像中频段靠近的两个DCT系数分别为D(u1,v1)和D(u2,v2),此时如果与该块相对应的水印像点值为“0”时,则需保证D(u1,v1)D(u2,v2),若像点值为”1”时,则应保证D(u1,v1)D(u2,v2),如果无法满足以上条件,则交换这两个DCT系数的位置。由于交换的是靠近的两个DCT系数,故转换为空间域后,因嵌入水印而引起的图像降质不会很明显。另外,为了使水印具有较强的鲁棒性,确保在加噪等情况下两位置DCT系数的大小关系不会改变,
本文标题:算法参考20150319
链接地址:https://www.777doc.com/doc-2096844 .html