数字图像处理论文

  • 格式:doc
  • 大小:371.33 KB
  • 文档页数:9

《数字图像处理》课程论文题目:数字图像水印设计院(系)信息科学与工程学院班级 11级通信工程2班学号1115107007姓名指导老师目录图像数字水印的设计与实现 ..................................................... 错误!未定义书签。

1、摘要 (3)2、数字水印技术概括 (3)2.1 数字水印的概念和特性 (3)2.2 数字水印系统模型 (3)3、基于DCT的数字水印技术 (4)3.1 离散余弦变换 (4)3.2 水印嵌入算法 (5)3.3 水印提取算法 (5)4、MATLAB程序及运行结果比较 (6)4.1 MATLAB程序及运行结果 (6)4.2 攻击测试语句及结果 (8)5、总结与心得 (9)6、参考文献 (9)1、摘要:数字水印是通过一定的算法将某些秘密信息------水印嵌入到被保护的数字多媒体(如静止图像、音频、视频等)内容中,但不影响原内容的价值和使用,并且不能被人的感知系统察觉。

目前的数字水印算法已经有许多种。

本论文针对变换域中基于DCT的数字水印算法进行了研究,在简要介绍数字水印的分类、特点、变换方法等的基础上,通过对图像的处理和基于变换域算法的数字水印的嵌入与提取算法进行了深入的分析和研究,采用基于DCT算法的数字水印方法,将数字水印嵌入到图像的低频分量中。

通过MATLAB编程实现最终的设计,并将实现数字水印的嵌入、提取。

关键词:数字水印、DCT、MATLAB、低频2、数字水印技术概括2.1 数字水印的概念和特性概念:数字水印是将一些标识信息(即数字水印)直接嵌入数字载体(包括多媒体、文档、软件等)当中,但不影响原载体的使用价值,也不容易被人的知觉系统(如视觉系统或听觉系统)觉察或注意到。

通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。

基本特征:鲁棒性、不可感知性、可证明性。

2.2 数字水印系统模型所有水印系统都包括两个基本的构造模块:水印嵌入模块和水印提取或检测模块。

密钥(K)水印信息(W)嵌入过程含水印的信号(Iw)原始信号(I)图2-1 水印嵌入模型图2-2 水印检测模块3、基于DCT 的数字水印技术3.1离散余弦变换(DCT )数字图像X (m,n )是具有M 行N 列的一个矩阵。

为了同时减弱或去除图像数 据相关性,可以运用二维DCT ,将图像从空间域转换到DCT 变换域。

根据定义,二维离散余弦变换(DCT )定义如下:N l n M k m n m X l c k c MNl k Y M m N n 2)12(cos2)12(cos),()()(2),(1010ππ++=∑∑-=-=式中:m ,k=0,1,…,M-1; n , l =0,1,…,N-1。

⎩⎨⎧-===1,,2,11021)(M k k k c 其中函数⎩⎨⎧-===1,,2,1121)(N k k l c二维逆离散余弦变换(IDCT )的定义如下:∑∑-=-=++=10102)12(cos2)12(cos),()()(2),(M K N L N l n M k m l k Y l c k c MNn m X ππ式中:m ,k=0,1,…,M-1; n ,l =0,1,…N-1。

DCT 变换域数字水印算法的主要思想是:在DCT 变换域上选择中、低频系数叠加水印信息,因为人眼的感觉主要集中在中、低频段,攻击者破坏水印时,不数字水印W/ 原始数据I私钥/公钥(K )待检测数据水印检测算法估计水印(W )/相似性检测可避免地会引起图像质量的严重下降,而且一般的图像处理也不会改变这部分数据。

基于DCT 变换的数字水印在逆变换时会散布在整个图像空间中,故水印不像空间域技术那样易受到裁剪、低通滤波等攻击的影响,具有鲁棒性高、隐蔽性好的特点。

3.2 水印嵌入算法设a 是原始图像,大小为512⨯512;I 是水印图像,大小为64⨯64。

把水印I 加载到图像a 中,算法分以下几步进行:(1) 将a 分解为64⨯64个8⨯8大小的方块Ba(m ,n),同时,将I 也分解为64⨯64个1⨯1大小的方块BI(m ,n),641≤≤m ,64n 1≤≤。

(2) 对每一个Ba(m ,n)进行DCT 变换:()()),(,a n m Ba DCT n m DB ='。

(3) si 为从()n m DB ,a '的中频中选出的加载的位置,ti 为水印()n m BI ,的位置坐a 标,其中i=1。

()()))(,(),(,'ti n m BI a n m DBa si n m a DB ⨯+='',其中a 是加权系数,用()si n m a DB ),(''来代替()si n m DB )(,a '得到加载水印后的图像。

(4)对以上得到的每一个()n m a DB ,''进行DCT 逆变换:()()()n m a DB IDCT n m IDBa ,,''=,并将各方块()n m IDBa ,合并为一个整图a ',即加载了水印的新图像。

3.3水印提取算法设图像a '为已经加载了水印的载体图像。

现要将所加载的水印从a '中提取出来。

其过程为上述加载水印算法的逆运算:将a '分为64⨯64个8⨯8大小的方块()n m B ,a ',641≤≤m ,64n 1≤≤。

对每一个()n m B ,a '进行二维DCT 变换:()()()n m a B IDCT n m B ,,a '=。

并对水印化图像及载体图像进行线形变换,然后进行DCT 反变换,得到BI(m ,n),将上面得到的所有BI (m,n )合成一个整图I 。

4、MATLAB程序及运行结果比较4.1 MATLAB程序及运行结果%嵌入水印的程序代码clear ;clc;M =512;%原图像长度N =64; %水印图像长度K =8;%图像分块大小I=zeros(M,M);%创建一个零矩阵,用于存放载体图像J=zeros(N,N);%创建一个零矩阵,用于存放水印图像B=zeros(K,K);%创建一个零矩阵,用于存放图像分块%显示原图像subplot(2,2,1);I=imread('wake_up.jpg');imshow(I);tit le('原始公开图像');%显示水印图像subplot(2,2,2);J=imread('5.bmp');imshow(J);title ('水印图像');%水印嵌入for p=1:N %水印图像行循环for q=1:N %水印图像列循环x=(p-1)*K+1;%x为载体图像行坐标y=(q-1)*K+1;%y为载体图像列坐标B=I(x:x+K-1,y:y+K-1);%B为载体图像I的分块,分块大小为K*K,初始值I(0:K-1,0:K-1)B=dct2(B);%对BLOCK进行二维DCT变换,得到新的BLOCK即%DCT系数矩阵BLOCKif J(p,q)==0%如果水印图像的第(p,q)个像素为0a=-1;%嵌入参数为-1elsea=1;%若如果水印图像的第(p,q)个像素为1嵌入参数为1endB(1,1)=B(1,1)*(1+a*0.03);对载体图像的分块的DCT系数矩阵B=idct2(B);%对DCT系数矩阵进行反变换,得到嵌入水印后的载体图像分块BI(x:x+K-1,y:y+K-1)=B;%用嵌入水印后的图像分块B代替载体图像的对应分块end %水印图像列循环结束end %水印图像行循环结束%显示嵌入水印后的图像subplot(2,2,3);imshow(I);title('嵌入水印后的图像'); imwrite(I,'water.bmp','bmp');%将嵌入水印后图像写成bmp文件%从嵌入水印的图像中提取水印I=imread('wake_up.jpg','jpg');J=imread('water.bmp','bmp');for p=1:Nfor q=1:Nx=(p-1)*K+1;y=(q-1)*K+1;B1 =I(x:x+K-1,y:y+K-1);B2 =J(x:x+K-1,y:y+K-1);B1=dct2(B1);B2=dct2(B2);a = B2(1,1)/B1(1,1)-1;if a<0W(p,q)=0;elseW(p,q)=1;endendend%显示提取的水印subplot(2,2,4);imshow(W);title('从含水印图像中提取的水印');结本次的实验效果图:水印检测的基本框架图:可以定义水印检测过程的通用公式为:① 有原始载体数据I 时: ),,(ˆK I I D W W= ② 有原始水印W 时: ),,(K W I D W W= ③ 没有原始信息时: ),(K I D W W=其中,W 表示估计水印,D 为水印检测算法,W I表示在传输过程中受到攻击后的水印载体数据。

检测水印的手段可以分为两种:一是在有原始信息的情况下,可以做嵌入信号的提取或相关性验证;二是在没有原始信息情况下,必须对嵌入信息做全搜索或分布假设检验等。

如果信号为随机信号或伪随机信号,证明检测信号是水印信号的方法一般就是做相似度检验。

水印相似度检验的通用公式为:WW W W Sim **=或WW W W WW Sim***=其中W表示估计水印,W 表示原始水印,Sim 表示不同信号的相似度。

离散余弦变换水印提取算法:设图像D 为已经加载了水印的载体图像,现要将所加载的水印从D 中提取出来,其过程为上述加载水印算法的逆运算:数字水印(W )/原始数据(I) 待检测数据(W I)水印检测 算法(D ) 估计水印(W)/相似度检测(Sim )私钥/公钥(K ) 原始图像水印图像缩放水印图像加了水印的图象1.将D分解为(M/8)×(N/8)个8×8大小的方块BD;2.对每一个BD进行二维DFT变换:DBD=DCT(BD);3.提取数据对每一个DBD,按照式V’=1/A×DBD得到V’;4.将上面得到的所有V’合并成一个水印整图J’。

4.2 攻击测试语句及结果由于数字水印在实际应用中可能会遭到各种各样的攻击,因此对算法进行攻击测试是衡量一个水印算法优劣的重要手段。

本次采用了三种常见的攻击手段来对算法进行检测。