![基于MATLAB数字水印系统设计_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/5a000b97-d0fd-4b9d-9e67-7bcd263d0e4f/5a000b97-d0fd-4b9d-9e67-7bcd263d0e4f1.gif)
![基于MATLAB数字水印系统设计_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/5a000b97-d0fd-4b9d-9e67-7bcd263d0e4f/5a000b97-d0fd-4b9d-9e67-7bcd263d0e4f2.gif)
![基于MATLAB数字水印系统设计_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/5a000b97-d0fd-4b9d-9e67-7bcd263d0e4f/5a000b97-d0fd-4b9d-9e67-7bcd263d0e4f3.gif)
![基于MATLAB数字水印系统设计_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/5a000b97-d0fd-4b9d-9e67-7bcd263d0e4f/5a000b97-d0fd-4b9d-9e67-7bcd263d0e4f4.gif)
![基于MATLAB数字水印系统设计_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/5a000b97-d0fd-4b9d-9e67-7bcd263d0e4f/5a000b97-d0fd-4b9d-9e67-7bcd263d0e4f5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLABMATLAB是一套高性能的数值计算和可视化是一套高性能的数值计算和可视化软件,其强大的图形功能以及丰富的图像软件,其强大的图形功能以及丰富的图像处理工具函数,使得处理工具函数,使得MATLABMATLAB特别适合于图特别适合于图像处理学习和应用。本章将结合数字水印像处理学习和应用。本章将结合数字水印技术,重点介绍如何利用技术,重点介绍如何利用MATLABMATLAB实现图像实现图像处理的基本功能。处理的基本功能。 基于基于MATLABMATLAB数字水印系统设计数字水印系统设计 基于基于MATLABMATLAB数字水印系统设计数字水印系统设计 1 1 数字水印简介数字水印简介 数字
2、水印技术的特征及分类数字水印技术的特征及分类 数字水印系统的组成部分数字水印系统的组成部分 设计实现及测试设计实现及测试 数字水印技术是通过一定的算法将一些标志性信数字水印技术是通过一定的算法将一些标志性信息直接嵌入到多媒体内容当中,但不影响原内容的息直接嵌入到多媒体内容当中,但不影响原内容的价值和使用,并且不能被人的感知系统察觉或注意价值和使用,并且不能被人的感知系统察觉或注意到,只有通过专用的检测器或阅读器才能提取的一到,只有通过专用的检测器或阅读器才能提取的一种技术。其中的水印信息可以是作者的序列号、公种技术。其中的水印信息可以是作者的序列号、公司标志、有特殊意义的文本等信息,可用来识别
3、文司标志、有特殊意义的文本等信息,可用来识别文件、图像或音乐制品的来源、版本、原作者、拥有件、图像或音乐制品的来源、版本、原作者、拥有者、发行人、合法使用人等对数字产品的拥有权。者、发行人、合法使用人等对数字产品的拥有权。1 数字水印简介数字水印简介 数字水印技术大致可分为两类数字水印技术大致可分为两类:如空间域方法和变如空间域方法和变换域方法。空间域方法不复杂,不进行变换,换域方法。空间域方法不复杂,不进行变换,,但但并不抗攻击。变换域水印技术比空间域方法是更并不抗攻击。变换域水印技术比空间域方法是更抗攻击。这是由于当图像逆小波变换抗攻击。这是由于当图像逆小波变换,数字水印在数字水印在图像分
4、布不规则图像分布不规则,使得攻击者难以阅读或修改。在使得攻击者难以阅读或修改。在变换域水印技术基于离散小波变换变换域水印技术基于离散小波变换(DWT)数字水数字水印技术得到了越来越多的欢迎印技术得到了越来越多的欢迎,因为因为DWT有多项有多项优于其他变换如渐进性和低码率传输、质量的可优于其他变换如渐进性和低码率传输、质量的可伸缩性和感兴趣区域(伸缩性和感兴趣区域(ROI)编码的需求,在图)编码的需求,在图像压缩和数字水印的应用程序,可以被利用的更像压缩和数字水印的应用程序,可以被利用的更高效和更通用的图像编码。基于离散小波变换高效和更通用的图像编码。基于离散小波变换(DWT)更加满足于)更加满
5、足于JPEG2000压缩标准的要求。压缩标准的要求。2.1数字水印技术的特性数字水印技术的特性 数字水印有很多特征,其中最主要的特征是可证数字水印有很多特征,其中最主要的特征是可证明性、保真度、安全性、鲁棒性及安全性,其主明性、保真度、安全性、鲁棒性及安全性,其主要介绍如下:要介绍如下: 1)可证明性:水印应能为受到保护的信息产品的可证明性:水印应能为受到保护的信息产品的版权归属提供完全可靠的证据。版权归属提供完全可靠的证据。 2)保真度:即不可感知性是指视觉上或听觉上的保真度:即不可感知性是指视觉上或听觉上的不可感知性,即是指因嵌入水印信息后导致载体不可感知性,即是指因嵌入水印信息后导致载体
6、数据的变换而对于观察者的视觉或听觉系统来讲数据的变换而对于观察者的视觉或听觉系统来讲应该是不可被察觉的。应该是不可被察觉的。 3)鲁棒性:鲁棒性是指在经历多种无意或有意的鲁棒性:鲁棒性是指在经历多种无意或有意的信号处理过程后,数字水印仍能保持完整或仍能信号处理过程后,数字水印仍能保持完整或仍能被批准鉴别。可能的信号处理过程包括信道噪声、被批准鉴别。可能的信号处理过程包括信道噪声、滤波处理、数模或模数转换、冲采样、剪切、位滤波处理、数模或模数转换、冲采样、剪切、位移、尺度变化以及有损压缩编码等。移、尺度变化以及有损压缩编码等。 4)安全性:水印的安全性要求未授权者不能发现安全性:水印的安全性要求
7、未授权者不能发现数字产品中含有水印信息,或者算法安全性仅仅数字产品中含有水印信息,或者算法安全性仅仅依赖于密钥而不依赖于算法的保密性。依赖于密钥而不依赖于算法的保密性。 除以上基本特征外,在实际应用中,数字水印还除以上基本特征外,在实际应用中,数字水印还应该尽量满足以下要求:应该尽量满足以下要求: 1)嵌入位置的安全性:指将水印信息嵌入于目标嵌入位置的安全性:指将水印信息嵌入于目标数据中,而非文件头等处,防止由于格式的变化数据中,而非文件头等处,防止由于格式的变化而被破坏。而被破坏。 2)通用性:比较好水印算法大多都实用于多类媒通用性:比较好水印算法大多都实用于多类媒体格式与文件格式。通用性在
8、特定程度上也代表体格式与文件格式。通用性在特定程度上也代表易用性。易用性。 3)计算效率高:在软件和硬件方面,水印算法也计算效率高:在软件和硬件方面,水印算法也应该能被有效的实现。需要特别注意的是,在分应该能被有效的实现。需要特别注意的是,在分布式网络上的多媒体数据监视方面,水印检测算布式网络上的多媒体数据监视方面,水印检测算法的能够快速完成。法的能够快速完成。2.2数字水印技术的分类数字水印技术的分类 数字水印的分类方法有很多种,不同的出发点导数字水印的分类方法有很多种,不同的出发点导致了不同的分类,他们之间既有联系又有区别,致了不同的分类,他们之间既有联系又有区别,本文主要介绍按水印的嵌入
9、域划分。本文主要介绍按水印的嵌入域划分。 1按特性划分按特性划分 按水印的特性可以将数字水印分为鲁棒数字水印按水印的特性可以将数字水印分为鲁棒数字水印和脆弱数字水印两类。鲁棒数字水印主要用于在和脆弱数字水印两类。鲁棒数字水印主要用于在数字作品中标识著作权信息,如作者、作品序号数字作品中标识著作权信息,如作者、作品序号等,它要求嵌入的水印能够经受各种常用的编辑等,它要求嵌入的水印能够经受各种常用的编辑处理;脆弱数字水印主要用于完整性保护,与鲁处理;脆弱数字水印主要用于完整性保护,与鲁棒水印的要求相反,脆弱水印必须对信号的改动棒水印的要求相反,脆弱水印必须对信号的改动很敏感,人们根据脆弱水印的状态
10、就可以判断数很敏感,人们根据脆弱水印的状态就可以判断数据是否被篡改过。据是否被篡改过。 2按水印所附载的媒体划分按水印所附载的媒体划分 按水印所附载的媒体,我们可以将数字水印划分按水印所附载的媒体,我们可以将数字水印划分为图像水印、音频水印、视频水印、文本水印以为图像水印、音频水印、视频水印、文本水印以及用于三维网格模型的网格水印等。随着数字技及用于三维网格模型的网格水印等。随着数字技术的发展,会有更多种类的数字媒体出现,同时术的发展,会有更多种类的数字媒体出现,同时也会产生相应的水印技术。也会产生相应的水印技术。 3.按检测过程划分按检测过程划分 按水印的检测过程可以将数字水印划分为明文水按
11、水印的检测过程可以将数字水印划分为明文水印和盲水印。明文水印在检测过程中需要原始数印和盲水印。明文水印在检测过程中需要原始数据,而盲水印的检测只需要密钥,不需要原始数据,而盲水印的检测只需要密钥,不需要原始数据。一般来说,明文水印的鲁棒性比较强,但其据。一般来说,明文水印的鲁棒性比较强,但其应用受到存储成本的限制。目前学术界研究的数应用受到存储成本的限制。目前学术界研究的数字水印大多数是盲水印。字水印大多数是盲水印。 4按内容划分按内容划分 按数字水印的内容可以将水印划分为有意义水印按数字水印的内容可以将水印划分为有意义水印和无意义水印。有意义水印是指水印本身也是某和无意义水印。有意义水印是指
12、水印本身也是某个数字图像(如商标图像)或数字音频片段的编个数字图像(如商标图像)或数字音频片段的编码;无意义水印则只对应于一个序列号。有意义码;无意义水印则只对应于一个序列号。有意义水印的优势在于,如果由于受到攻击或其他原因水印的优势在于,如果由于受到攻击或其他原因致使解码后的水印破损,人们仍然可以通过视觉致使解码后的水印破损,人们仍然可以通过视觉观察确认是否有水印。但对于无意义水印来说,观察确认是否有水印。但对于无意义水印来说,如果解码后的水印序列有若干码元错误,则只能如果解码后的水印序列有若干码元错误,则只能通过统计决策来确定信号中是否含有水印。通过统计决策来确定信号中是否含有水印。 5按
13、用途划分按用途划分 不同的应用需求造就了不同的水印技术。按水印不同的应用需求造就了不同的水印技术。按水印的用途,我们可以将数字水印划分为票据防伪水的用途,我们可以将数字水印划分为票据防伪水 印、版权保护水印、篡改提示水印和隐蔽标识水印、版权保护水印、篡改提示水印和隐蔽标识水印。票据防伪中的水印是相当特别的一种水印,印。票据防伪中的水印是相当特别的一种水印,主要在票据的打印及在电子票据防伪中应用。一主要在票据的打印及在电子票据防伪中应用。一般说,制造假币的人不能对票据中的图像修改的般说,制造假币的人不能对票据中的图像修改的过多,因此,尺度变换等操作是不在考虑范围内。过多,因此,尺度变换等操作是不
14、在考虑范围内。另外,票据的破损、图案模糊等地方也必须被考另外,票据的破损、图案模糊等地方也必须被考虑,更要考虑快速检测的要求,在票据的防伪中虑,更要考虑快速检测的要求,在票据的防伪中水印算法不可以过于复杂。版权标识中的水印是水印算法不可以过于复杂。版权标识中的水印是当前数字水印研究中使用最多的一种。数字作品当前数字水印研究中使用最多的一种。数字作品既是一种商品也是知识产品,这种双重性即强调既是一种商品也是知识产品,这种双重性即强调水印隐蔽的特性又强调了水印的稳健的特性,然水印隐蔽的特性又强调了水印的稳健的特性,然而对数据容量的要求相对比较小。篡改提示水印而对数据容量的要求相对比较小。篡改提示水
15、印为脆弱水印的一类,其把保证宿主信号的完整性为脆弱水印的一类,其把保证宿主信号的完整性及真实性为目的。隐蔽标识的水印主要是将被保及真实性为目的。隐蔽标识的水印主要是将被保 密数据的标注进行隐藏,使保密数据不被非法使密数据的标注进行隐藏,使保密数据不被非法使用者使用。用者使用。 6按水印嵌入域划分按水印嵌入域划分 按水印的嵌入的位置,可以将其划分为时按水印的嵌入的位置,可以将其划分为时/空域水空域水印和变换域水印,其中根据变换域的不同,也分印和变换域水印,其中根据变换域的不同,也分为离散余弦变换(为离散余弦变换(discrete cosine transform,DCT)域水印、离散傅里叶变换(
16、域水印、离散傅里叶变换(discrete Fourier transform,DFT)域水印和离散小波变换)域水印和离散小波变换(discrete wavelettransform,DWT)域水印,以)域水印,以及哈德码变换域水印、及哈德码变换域水印、Fresnel变换域水印、变换域水印、Zernike变换域水印和奇异值分解(变换域水印和奇异值分解(singular value decomposition,SVD)域水印等。)域水印等。 时时/空域水印是将水印信息直接叠加到载体信号的空域水印是将水印信息直接叠加到载体信号的时间域或者空间域之中;然而变换域水印是将水时间域或者空间域之中;然而变换
17、域水印是将水印信息嵌入到变换域中,此时,水印提取也应该印信息嵌入到变换域中,此时,水印提取也应该在变换域进行。时(空)域水印算法在早期的研在变换域进行。时(空)域水印算法在早期的研究中使用的较多,一般实时性和复杂度等特点比究中使用的较多,一般实时性和复杂度等特点比较好,但其鲁棒性比较差,主要用途是设计脆弱较好,但其鲁棒性比较差,主要用途是设计脆弱水印与半脆弱水印;在变换域的水印算法具有良水印与半脆弱水印;在变换域的水印算法具有良好的鲁棒性较强和容量较大等特点,所以主要用好的鲁棒性较强和容量较大等特点,所以主要用途是设计鲁棒水印,也可以与人类的知觉相互结途是设计鲁棒水印,也可以与人类的知觉相互结
18、合从而使水印具有良好的保真度。合从而使水印具有良好的保真度。3、数字水印系统的组成、数字水印系统的组成一个数字水印系统一般包括一个数字水印系统一般包括3个基本方面:水印的生个基本方面:水印的生成、水印的嵌入和水印的提取或检测。数字水印成、水印的嵌入和水印的提取或检测。数字水印技术实际上是通过对水印载体媒质的分析、嵌入技术实际上是通过对水印载体媒质的分析、嵌入信息的预处理、信息嵌入点的选择、嵌入方式的信息的预处理、信息嵌入点的选择、嵌入方式的设计、嵌入调制的控制等几个相关技术环节进行设计、嵌入调制的控制等几个相关技术环节进行合理优化,寻求满足不可感知性、安全可靠性、合理优化,寻求满足不可感知性、
19、安全可靠性、稳健性等诸条件约束下的准最优化设计问题。而稳健性等诸条件约束下的准最优化设计问题。而作为水印信息的重要组成部分作为水印信息的重要组成部分密钥,则是每密钥,则是每个设计方案的一个重要特色所在。往往可以在信个设计方案的一个重要特色所在。往往可以在信息处理、嵌入点的选择和调制等不同环节入手完息处理、嵌入点的选择和调制等不同环节入手完成蜜月的嵌入。成蜜月的嵌入。4、设计实现及测试、设计实现及测试1基于DCT域的鲁棒水印水印的嵌入基于DCT的鲁棒水印嵌入流程图 具体步骤:具体步骤: 原始图像的分块原始图像的分块DCT变换变换 将原始图像分割为互不覆盖的将原始图像分割为互不覆盖的88子块,再对
20、每子块,再对每个子个子 块进行块进行DCT变换。变换。 基于纹理掩蔽特性的块分类基于纹理掩蔽特性的块分类 将水印信号尽可能嵌入到图像中纹理较复杂的子将水印信号尽可能嵌入到图像中纹理较复杂的子块。块。 水印的产生和嵌入水印的产生和嵌入 将二值水印图像组成一维行向量,作为水印信息。将二值水印图像组成一维行向量,作为水印信息。采采 用折衷办法用折衷办法,将水印信息嵌入到宿主图像的中频部将水印信息嵌入到宿主图像的中频部分分 程序代码如下:程序代码如下: clear all; k=20; %设置水印强度设置水印强度 blocksize=8; %设置图像分块为设置图像分块为8*8 midband= 0,0
21、,0,1,1,1,1,0; 0,0,1,1,1,1,0,0; 0,1,1,1,1,0,0,0; 1,1,1,1,0,0,0,0; 1,1,1,0,0,0,0,0; 1,1,0,0,0,0,0,0; 1,0,0,0,0,0,0,0; 0,0,0,0,0,0,0,0 ; message=imread(copyright.bmp);%读入图像读入图像“copyright”,并转换成双精度数组,并转换成双精度数组 message=imresize(message,28,28); %message=rgb2gray(message); imwrite(message,copyright.bmp,bmp)
22、; figure,imshow(message); message=double(message); Mm=size(message,1); %计算图像的高度计算图像的高度 Nm=size(message,2); %计算图像的宽度计算图像的宽度 n=Mm*Nm; message=round(reshape(message,1,n)./256);%将将水印图像转变为水印图像转变为1维行向量,维行向量,message由由0,1构成构成 cover_object=imread(lena.bmp);%读入原始宿主读入原始宿主图像,并转换成双精度数组图像,并转换成双精度数组 %cover_object=
23、rgb2gray(cover_object); figure,imshow(cover_object); imwrite(cover_object,lena.bmp,bmp); cover_object=double(cover_object); Mc=size(cover_object,1); %计算原始宿主图像的计算原始宿主图像的高度高度 Nc=size(cover_object,2); %计算原始宿主图像的计算原始宿主图像的宽度宽度 c=round(Mc/8);d=round(Nc/8);m=c*d; %计计算图像划分的图像块算图像划分的图像块 xx=1; for j=1:c for i
24、=1:d pjhd(xx)=1/64*sum(sum(cover_object(1+(j-1)*8:j*8),(1+(i-1)*8):i*8); fc(xx)=1/64*sum(sum(cover_object(1+(j-1)*8:j*8),(1+(i-1)*8):i*8)-pjhd(xx).2); xx=xx+1; end end A=sort(fc); %取出方差最大的前取出方差最大的前n块块 B=A(c*d-n+1):c*d); %将水印信息嵌入到方差将水印信息嵌入到方差最大的前最大的前n块块 fc_o=ones(1,c*d); for g=1:n for h=1:c*d if B(g)
25、=fc(h) fc_o(h)=message(g); h=c*d; end end end message_vector=fc_o; watermarked_image=cover_object; rand(state,7); pn_sequence_zero=round(rand(1,sum(sum(midband); %嵌入水印嵌入水印 x=1;y=1; for(kk=1:m) %分块分块DCT变换变换 dct_block=dct2(cover_object(y:y+blocksize-1,x:x+blocksize-1); II=1; if(message_vector(kk)=0) f
26、or ii=1:blocksize for jj=1:blocksize if(midband(jj,ii)=1) dct_block(jj,ii)=dct_block(jj,ii)+k*pn_sequence_zero(II); II=II+1; end end end end %分块分块DCT反变换反变换 watermarked_image(y:y+blocksize-1,x:x+blocksize-1)=idct2(dct_block); if(x+blocksize)=Nc x=1;y=y+blocksize; else x=x+blocksize; end end watermark
27、ed_image_int=uint8(watermarked_image); %生成并输出潜入水印后的图像生成并输出潜入水印后的图像 imwrite(watermarked_image_int,dct2_watermarked.bmp,bmp); %显示峰值信噪比显示峰值信噪比 xsz=255*255*Mc*Nc/sum(sum(cover_object-watermarked_image).2); psnr=10*log10(xsz) %显示嵌入水印后的图像显示嵌入水印后的图像 figure; imshow(watermarked_image_int,) title(Watermarked
28、Image) (a) a) 原始图像原始图像 ( (b) b) 水印图像水印图像 (c) c) 嵌入水印后的图像嵌入水印后的图像 基于DCT的鲁棒水印嵌入效果图 嵌入过程中涉及多个一维数组:其中嵌入过程中涉及多个一维数组:其中message与与B是是1行行n列的一维数组;列的一维数组;fc_fc_o(即即mesaage_vector)均是均是1行行n列的一维数组;列的一维数组;pn_sequence_zero是是1行行22列的一维数组列的一维数组.message由嵌入的水印图像决定,由嵌入的水印图像决定,pn_sequence_zero由系统当前的伪随机数生成器由系统当前的伪随机数生成器状态状
29、态J唯一确定,唯一确定,message与与pn_sequence_zero均均有有0.1构成。构成。 具体实现过程中,现将一维数组具体实现过程中,现将一维数组fc_o全置为全置为1,方,方差数组差数组fc按降序排序得到方差最大的前按降序排序得到方差最大的前n数值,组数值,组成数组成数组B;其次,修改方差值最大的图像块对应;其次,修改方差值最大的图像块对应的的fc_o(h)=message(1),修改方差值次之的图像块,修改方差值次之的图像块对应的对应的fc_o(h)=message(2), 以此类推,修改完以此类推,修改完m个数值得到一维数组个数值得到一维数组message_zero的的K倍后
30、,所有图像块进行倍后,所有图像块进行DCT中中频的频的22个系数嵌入为随机序列个系数嵌入为随机序列pn_sequence_zero的的K倍后,所有图像块进行倍后,所有图像块进行DCT逆变换,生成含逆变换,生成含水印的图像。水印的图像。 图(图(a)是)是256*256的灰度图像的灰度图像“lena”。图(。图(b)64*64的水印图像,图(的水印图像,图(c)是在)是在lena图像中嵌入图像中嵌入水印之后的图像。水印之后的图像。 从结果可以看到,原始宿主图像在嵌入水印之后从结果可以看到,原始宿主图像在嵌入水印之后基本上没有可见失真,其峰值信噪比基本上没有可见失真,其峰值信噪比PSNR=45.6
31、286dB。PSNR越大,不可见性就越好,越大,不可见性就越好,因此该方法具有较好的不可见性。因此该方法具有较好的不可见性。4.2水印的提取水印的提取 基于基于DCT的数字水印提取过程如下:的数字水印提取过程如下: 原始图像和待测图像在原始图像和待测图像在DCT域进行求差运算,域进行求差运算,比较相关性,确定序列比较相关性,确定序列message_vector。 根据图像块的方差值的大小,确定纹理块,从根据图像块的方差值的大小,确定纹理块,从而确定水印曾经的嵌入位置。而确定水印曾经的嵌入位置。 根据序列根据序列message_vector以及纹理块复杂度的以及纹理块复杂度的次序形成一维水印序列
32、。次序形成一维水印序列。 将水印序列重新组成二维水印恢复图像。将水印序列重新组成二维水印恢复图像。 程序代码如下:程序代码如下: clear all; blocksize=8; %设定图像的分块设定图像的分块大小为大小为8*8 midband= 0,0,0,1,1,1,1,0; 0,0,1,1,1,1,0,0; 0,1,1,1,1,0,0,0; 1,1,1,1,0,0,0,0; 1,1,1,0,0,0,0,0; 1,1,0,0,0,0,0,0; 1,0,0,0,0,0,0,0; 0,0,0,0,0,0,0,0 ; cover_object=imread(lena.bmp); figure,im
33、show(cover_object); cover_object=double(cover_object); watermarked_image=imread(dct2_watermarked.bmp); figure,imshow(watermarked_image); watermarked_image=double(watermarked_image); Mw=size(watermarked_image,1); Nw=size(watermarked_image,2); c=Mw/8;d=Nw/8;m=c*d; orig_watermarked=imread(copyright.bmp
34、); %orig_watermarked=imresize(orig_watermarked,28,28); %orig_watermarked = rgb2gray(orig_watermarked); figure,imshow(orig_watermarked); orig_watermarked=double(orig_watermarked); Mo=size(orig_watermarked,1); No=size(orig_watermarked,2); n=Mo*No; rand(state,7); pn_sequence_zero=round(rand(1,sum(sum(m
35、idband); %提取水印提取水印 x=1; y=1; for(kk=1:m) dct_block1=dct2(watermarked_image(y:y+blocksize-1,x:x+blocksize-1); dct_block2=dct2(cover_object(y:y+blocksize-1,x:x+blocksize-1); II=1; for ii=1:blocksize for jj=1:blocksize if(midband(jj,ii)=1) sequence(II)=dct_block1(jj,ii)- dct_block2(jj,ii); II=II+1; end
36、 end end if(sequence=0) correlation(kk)=0; else correlation(kk)=corr2(pn_sequence_zero,sequence); end if(x+blocksize)=Nw x=1;y=y+blocksize; else x=x+blocksize; end end for(kk=1:m) if (correlation(kk)0.5) message_vector(kk)=0; else message_vector(kk)=1; end end xx=1 for j=1:c for i=1:d pjhd(xx)=1/64*
37、sum(sum(cover_object(1+(j-1)*8):j*8,(1+(i-1)*8):i*8); fc(xx)=1/64*sum(sum(cover_object(1+(j-1)*8):j*8,(1+(i-1)*8):i*8)-pjhd(xx).2); xx=xx+1; end end A=sort(fc);B=A(c*d-n+1):c*d); fc_o=ones(1,n); for g=1:n for h=1:c*d if B(g)=fc(h) fc_o(g)=message_vector(h); h=c*d; end end end message_vector=fc_o; me
38、ssage=reshape(message_vector(1:Mo*No),Mo,No);sim=corr2(orig_watermarked,message)imwrite(message,message.bmp,bmp);figure,imshow(message);(a)嵌入水印后的图像 (b)提取出来的水印图像 用于版权认证的水印算法必须具有较好的鲁棒性,用于版权认证的水印算法必须具有较好的鲁棒性,即数字水印必须很难被清除。通过实验,上述算即数字水印必须很难被清除。通过实验,上述算法生成的含水印图像在经过一定量的图像裁剪或法生成的含水印图像在经过一定量的图像裁剪或者适度的者适度的JPE
39、G压缩后仍能从中提取出嵌入水印图压缩后仍能从中提取出嵌入水印图像的大致轮廓,因此,该算法具有较好的鲁棒性。像的大致轮廓,因此,该算法具有较好的鲁棒性。4.3基于空域的脆弱水印基于空域的脆弱水印 水印的嵌入水印的嵌入 水印嵌入步骤:水印嵌入步骤: (1)将原始图最低有效位将原始图最低有效位(LSB)清清0,并分为互不,并分为互不覆盖的覆盖的88图像块图像块 (2)计算每个计算每个88块分解(如基于块分解(如基于LU分解)后矩分解)后矩阵阵u的迹,并将其作为嵌入的水印信息的迹,并将其作为嵌入的水印信息 (3)使用使用mean2( ) 函数计算每个函数计算每个88块相邻近块相邻近1616图像块的均值
40、,并嵌入到该图像块的均值,并嵌入到该88图像块特图像块特定的定的LSB位。位。 4)再将步骤(再将步骤(2)中计算的水印信息)中计算的水印信息 嵌入到由嵌入到由位置矩阵位置矩阵B决定的决定的88图像块图像块 中的相应中的相应LSB位,位,嵌入判别公式为:嵌入判别公式为: 程序代码如下:程序代码如下: clear Z=imread(lena.bmp); figure,imshow(Z); Z=double(Z); Mc=size(Z,1); Nc=size(Z,2); c=round(Mc/8); d=round(Nc/8); m=c*d;n=(c-2)*(d-2); blocksize=8;
41、B= 1 0 1 0 1 1 0 1; 1 0 1 0 1 0 1 1; 0 1 1 0 0 0 0 0; 0 1 0 1 1 1 0 0; 0 1 0 0 0 1 0 0; 1 0 0 1 1 1 1 1; 0 1 1 1 0 0 1 0; 1 0 1 1 1 1 1 0 ; ZM=floor(Z./2)*2; ZC=ZM; blo=blocksize/2; x=9;y=9; for (kk = 1:n) mean=mean2(ZC(y-4:y+blocksize-1+4,x-4:x+blocksize-1+4); mean=mod(floor(mean*10),10); meann=mea
42、n; i=0; while(meann=0) ZM(y+blocksize-1,x+blocksize-4+i)=ZM(y+blocksize-1,x+blocksize-4+i)+mod(meann,2); meann=floor(meann/2); i=i+1; end if (x+2*blocksize)=Nc x=9;y=y+blocksize; else x=x+blocksize; end end x=1;y=1; ZN=floor(ZM./2)*2; for (kk=1:m) q,u=qr(ZM(y:y+blocksize-1,x:x+blocksize-1); %qr分解分解
43、s,u,v=svd(ZM(y:y+blocksize-1,x:x+blocksize-1); %或奇异值分解或奇异值分解 l,u=lu(ZN(y:y+blocksize-1,x:x+blocksize-1); %或或lu分解分解 tra=floor(trace(u)*1000); for ii=1:blocksize for jj=1:blocksize if(B(ii,jj)=1&tra=0) ZM(y+ii-1,x+jj-1)=ZM(y+ii-1,x+jj-1)+mod(tra,2); tra=floor(tra/2); end end end if(x+blocksize=Nc)
44、 x=1; y=y+blocksize; else x=x+blocksize; end end xsz=480*480*max(max(Z.2)/sum(sum(Z-ZM).2); psnr=10*log10(xsz) figure,imshow(uint8(ZM); ZM(65:136,209:256)=ZM(179:250,183:230); ZA=uint8(ZM); imwrite(ZA,watermarked.bmp,bmp); figure,imshow(ZA);4.4水印的提取及篡改检测水印的提取及篡改检测 将待检测图像分为互不覆盖的将待检测图像分为互不覆盖的88图像块。图像块。 与水印嵌入过程类似,计算出每个与水印嵌入过程类似,计算出每个88块块 的水印信息。的水印信息。 将步骤中计算的水印信息与将步骤中计算的水印信息与LSB平面提取平面提取 的数值相比较,若相异则判断发生篡改。的数值相比较,若相异则判断发生篡改。 程序代码如下:程序代码如下: clear all Z=imread(watermarked.bmp); figure,im
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国银行小额信用消费贷款借款合同范本
- 网上超市框架协议书(2篇)
- 网络应急响应协议书(2篇)
- 网络数据交换协议书(2篇)
- 新能源项目合作框架协议书范本
- 知识产权国际保护策略的实践与思考
- 湖北省云学联盟2024-2025学年高一上学期12月月考生物试题(解析版)
- 河北省沧州市2023-2024学年高一上学期期末考试生物试题(解析版)
- 电视购物节目的品牌化发展路径
- 战后资本主义的新变化探讨
- 中国通用电气有限公司员工手册
- 汽车电气设备构造与维修(高职版)全套教学课件
- 缓刑解除矫正个人总结
- 成人住院患者静脉血栓栓塞症预防护理
- 四年级数学(四则混合运算)计算题专项练习与答案汇编
- 国家基本公共卫生服务项目绩效考核课件
- 孕产妇深静脉血栓预防与护理课件
- 研发运营一体化DevOps能力成熟度模型评估(完整版)
- 班级管理课件:班级组织的建设
- 《3-6岁儿童学习与发展指南》健康领域内容目标与指导
- GB/T 10739-2023纸、纸板和纸浆试样处理和试验的标准大气条件
评论
0/150
提交评论