小波变换的数字水印算法及其matlab实现
- 格式:docx
- 大小:38.23 KB
- 文档页数:5
基于小波变换的数字水印算法研究32716————————————————————————————————作者:————————————————————————————————日期:目录摘要 (Ⅲ)Abstract (Ⅴ)第1章绪论 (1)1。
1引言 (1)1。
2本文研究的目的及意义 (2)1.3数字水印技术的国内外研究现状 (2)第2章数字水印理论基础 (5)2.1 数字水印的基本概念 (5)2.2 数字水印的基本特征 (5)2。
3 数字水印的基本原理 (5)2。
4 数字水印的分类 (8)2。
5 数字水印典型算法(针对图像领域) (10)2。
6 数字水印的鲁棒性问题和攻击行为 (12)2。
7 数字水印应用领域 (13)第3章小波分析理论基础 (17)3.1小波分析的发展历程 (17)3.2小波函数与小波变换 (18)3。
3离散小波变换 (20)3。
4 多分辨率分析 (22)3.5实验环境:可实现数字水印技术的高效实用工具-—Matlab (24)第4章基于小波变换的数字水印算法 (25)4.1算法描述 (25)4.2实验结果及分析 (28)4.3 本章小结 (36)参考文献 (37)致谢 (39)附录 (41)基于小波变换的数字水印算法研究摘要数字水印技术是目前信息安全技术领域的一个新方向,是一个在开放的网络环境下,保护版权和认证来源及完整性的新型技术.本文针对基于小波变换的数字水印技术,提出了一种基于小波域的二值图像水印算法。
该算法选择了检测结果直观、有特殊意义的二值图像作为原始水印,并在嵌入之前进行图像置乱预处理,以提高安全性和隐蔽性,兼顾了水印的不可见性和鲁棒性,利用多分辨率分析思想进行水印的嵌入与提取.通过大量的仿真实验,证明本文算法在保证水印不可见性的同时,对常见的图像处理如JPEG压缩、噪声、滤波、剪切等,均有较好的鲁棒性.关键词:数字水印,小波变换,鲁棒性,不可见性,JPEG压缩Based on the wavelet transform the digital watermarkAbstractDigital watermarking technology is the field of information security technology a new direction,is an open network environment, copyright protection and authentication and integrity of the sources of new technology.In this paper, based on wavelet transform the digital watermarking technology, a wavelet domain based on the binary image watermarking algorithm. The algorithm chosen the test results intuitive, with special significance in the value of the original image as a watermark and embedded in the image scrambling prior to the pretreatment to enhance the safety and concealment;watermark does not take into account the visibility and robustness,Use of multi-resolution analysis of the thinking embedded watermark and extraction. Through the simulation experiments to prove that this algorithm can not watermark visibility at the same time,the common image processing such as JPEG compression, noise, and so on,have a better robustness.文档为个人收集整理,来源于网络文档为个人收集整理,来源于网络Key words:digital watermarking,wavelet transform ,Robust,visibility,JPEG compression第1章绪论1.1引言随着信息技术和计算机网络的飞速发展,数字多媒体信息包括图像、文本音视频、三维模型的存储、复制与传播变得非常方便.我们在通过互联网方便快捷的获取多媒体信息的同时,还可得到与原始数据完全相同的复制品,这就带来了对数字媒体原创者的版权和经济利益如何保护以及数字媒体信息是否安全可信等诸多问题.由此引发的信息安全问题、盗版问题和版权纷争问题已成为日益严重的社会问题。
基于小波变换的数字水印与matlab的实现摘要:通过对数字水印的原理和算法的分析,了解信息隐藏的实现手段与效果。
在信息加载和提取过程中,突破传统的加密技术,用更具专业性的检测手段来保护专属的信息产权。
本文利用了水印良好的鲁棒性和不可感知性,致力于对图像的处理,通过实验与测试证实了数字水印可以达到理想的效果,并且运用恰当的算法可以更加简化操作的复杂性。
在此之外,数字水印还可以应用于声音,视频等领域。
其技术手段的实现的更加完善化会带来其更加广阔的应用前景。
关键字:数字水印;信息隐藏;MATLAB;水印检测与提取;JPEG压缩;1 数字水印技术简介1.1数字水印的发展背景随着数字技术和Internet网络的发展,各种形式的多媒体数字作品(图像、视频、音频等)纷纷以网络形式发表,然而数字作品的便利性和不安全性是并存的,它可以低成本、高速度地被复制和传播,而这些特性也容易被盗版者所利用。
因而,采用多种手段对数字作品进行保护、对侵权者进行惩罚己经成为十分迫切的工作。
数字水印技术的研究就是在这种应用要求下迅速发展起来的。
数字水印(digital watermarking)技术也称为数字指纹技术,它将具有特定意义的水印标记不可感知地嵌入到被保护的数字产品中,在产生版权纠纷时,通过相应的算法提取该水印,用以证明作者对该数字产品的所有权,并可作为鉴证、起诉非法侵权的证据。
数字水印技术基本上应当满足隐蔽性、安全性、鲁棒性和水印容量等几个方面的要求。
研究数字水印技术的最初目的是用于保护数字产品的版权,但随着研究的进一步深入,它在信息安全保护领域的应用越来越广泛,并在广播检测、图像认证、盗版跟踪、数字签名、交易水印、拷贝控制、标题与注释等各个领域产生了许多新的用途。
数字水印从正式提出到现在虽然时间不长,但它与传统的密码学相比有明显的优越性,为解决版权保护和内容完整性认证、来源认证、篡改认证、网上发行、用户跟踪等一系列问题提供了一个崭新的研究方向,因此它在数字产品的知识产权保护、商务交易中的票据防伪、声像数据的隐藏标识和篡改提示、隐蔽通信及其对抗等方面具有十分广阔的应用前景。
一、水印技术概述水印技术是指在数字媒体中嵌入一些特定信息,以保护数字内容的版权和完整性。
水印技术可以分为可见水印和不可见水印,其中不可见水印更适用于数字图像和音频等领域。
本文主要介绍基于Matlab的离散小波变换(DWT)方法在数字图像中的水印嵌入与提取。
二、离散小波变换(DWT)简介离散小波变换是一种多尺度分析的方法,它可以将信号分解成不同频率成分的低频部分和高频部分。
在数字图像处理中,DWT可以对图像进行多尺度分析,将图像分解为不同尺度的子图像,使得图像的局部特征得以突出。
三、水印嵌入的步骤在Matlab中使用DWT方法进行水印嵌入的具体步骤如下:1. 读取原始图像和水印图像。
2. 对原始图像进行DWT分解,得到低频部分LL和高频部分LH、HL、HH。
3. 对水印图像进行预处理,如调整大小和灰度处理。
4. 对水印图像进行DWT分解,得到低频部分LL_w和高频部分LH_w、HL_w、HH_w。
5. 将水印信息嵌入到原始图像的DWT高频部分,可以选择直接替换部分高频系数或加减小幅度的高频系数。
6. 对修改后的DWT系数进行逆变换,得到含有水印信息的新图像。
四、水印提取的步骤在Matlab中使用DWT方法进行水印提取的具体步骤如下:1. 读取含水印的图像。
2. 对含水印图像进行DWT分解,得到低频部分LL'和高频部分LH'、HL'、HH'。
3. 对提取水印的图像进行DWT分解,得到低频部分LL_w'和高频部分LH_w'、HL_w'、HH_w'。
4. 根据嵌入水印时的处理方式,从高频部分中提取含水印信息。
5. 对提取的水印信息进行后处理,如灰度处理和大小调整。
五、实验与结果分析本文以一张数字图像为例,使用Matlab中的DWT方法进行水印嵌入和提取实验。
实验结果显示,DWT方法在水印嵌入和提取方面具有较好的鲁棒性和隐蔽性,对一定程度的噪声和攻击具有一定的抵抗能力。
摘要:数字水印技术作为数字媒体版权保护的有效办法,近年来在国内外引起了人们极大的兴趣。
但是由于数字水印技术涉及到的知识面比较广,即使是专业人员有时也感到力不从心,那么如何选择一种有效的编程工具便成为一个亟待解决的问题。
本文从数字水印技术本身的特点、一般模型和典型算法出发,简要地介绍了一种可以快速上手的高效的实用语言——Matlab。
最后,作者给出一个用Matlab实现数字水印实例。
关键词:数字水印Matlab Visual C++6.0DWT DCT1引言作为传统加密系统的有效补充办法,从1993年Caronni正式提出数字水印到现在短短几年里,无论是在国内还是在国外对数字水印的研究都引起了人们极大的关注。
但数字水印技术的发展还很不成熟,应用也处于初级阶段。
在我国,知识产权问题是一个敏感的话题,只有深入开展数字水印技术的研究,尽快制定我国的版权保护水印标准,才能使我们在未来可能的国际知识产权纠纷中取得主动权。
那么掌握高效的工具,便成为一个必须解决的问题。
本文就针对数字水印本身的特点,介绍了一种高效的实用工具——MATLAB。
2数字水印技术2.1数字水印技术的复杂性数字水印技术涉及到通信理论、编码理论、噪声理论、视听觉感知理论、扩频技术(Sprea d Spectrum)、信号处理(Signal Processing)技术、数字图像处理(Digital Image Pr ocessing)技术、多媒体(Multimedia)技术、模式识别(Pattern Reorganization)技术、算法设计(Algorithm Design)等理论,用到经典的D FT(Discrete Fourier Transform)、DCT(Discrete Cosine Transform)变换和近代最先进的数学工具----小波(Wavelet)。
数字水印又是一个横跨计算机科学、生理学、密码学、数字、数字通信等多门学科,并与I nternet的发展密切相关的交叉科学。
基于小波变换的数字水印及Matlab实现
傅德胜;黄伟
【期刊名称】《计算机工程与设计》
【年(卷),期】2008(029)004
【摘要】数字水印技术作为一门有效的多媒体版权保护技术受到越来越多的关注.提出了一种基于小波变换的图像数字水印算法.依据人眼视觉特性,将数字水印信息嵌入到经过小波变换后的图像的高频子带纹理区内,人眼不易察觉,再利用含水印图像和原始图像提取出嵌入的水印.采用多幅图进行实验,结果表明,该数字水印算法具有较好的隐蔽性,而且对常见的图像处理操作攻击具有较好的鲁棒性.
【总页数】4页(P1004-1006,1010)
【作者】傅德胜;黄伟
【作者单位】南京信息工程大学,计算机与软件学院,江苏,南京,210044;南京信息工程大学,计算机与软件学院,江苏,南京,210044
【正文语种】中文
【中图分类】TP309
【相关文献】
1.基于小波变换的数字水印及Matlab仿真实现 [J], 蔚立磊;王俊飞;李新锋
2.基于离散小波变换的遥感影像数字水印的实现 [J], 蒋文娟;徐冬;蒙斌
3.基于Daubechies小波变换的数字水印应用及实现 [J], 张新红
4.基于小波变换的数字水印技术的实现 [J], 周天琦;邓凡
5.基于小波变换的数字水印算法研究与实现 [J], 池越; 周亚同
因版权原因,仅展示原文概要,查看原文内容请购买。
一、题目:dwt水印二、目的:编程实现水印的嵌入与还原三、算法及其实现:水印的嵌入与还原小波变换具有空间-频率的多尺度性,对图像的分解可以连续地从低分辨率过渡到高分辨率,也可以对图像整体进行变换,DWT还具有多分辨率特性,可以很好地与人类视觉系统(HVS)特性相匹配。
本算法将载体图像进行小波分解,利用公式实现水印信息的嵌入。
将2值图像中0和1的值变成-1和1。
将水印入宿主图形重要的小波系数上。
水印的提取完全是水印嵌入的逆过程。
四、实现工具:Matlab五、程序代码:(1)dwt1_embed.m%嵌入源码clcclear all;% 保存开始时间start_time=cputime;k=20;blocksize=8; % 设置块的大小% 读入原图像file_name='zimu.bmp';cover_object=double(imread(file_name));% 原图像的行数与列数Mc=size(cover_object,1); %原图像行数Nc=size(cover_object,2); %原图像列数% 最大嵌入信息量max_message=Mc*Nc/(blocksize^2);% 读入水印图像file_name='c.bmp';message=double(imread(file_name));%%水印图像的行数与列数Mm=size(message,1); %水印行数Nm=size(message,2); %水印列数message_vector=reshape(message,1,Mm*Nm);% 检查水印信息是否过大if (Mm*Nm> max_message)error('水印太大')end%将随机数发生器的状态置为1100randn('state',1100);% 产生watermarked_image,并写入原图信息watermarked_image=cover_object;% 将图像分块嵌入% 当(2,2) > (2,3) 且message_pad(kk)=0% 当(2,2) < (2,3) 且message_pad(kk)=1%%经过分析可以得出结论:在提取水印时,如果cD1(2,2)>cD1(2,3)便是嵌入了水印的黑色像素,%%反之则是嵌入了白色像素x=1;y=1;h=waitbar(0,'嵌入水印,请等待');for (kk = 1:length(message_vector))% 对块进行DWT变换[cA1,cH1,cV1,cD1] = dwt2(cover_object(x:x+blocksize-1,y:y+blocksize-1),'haar');a=cD1;% 如果message_pad(kk)== 0if (message_vector(kk) == 0)% 且(2,2) < (2,3) ,交换它们if (cD1(2,2) < cD1(2,3))temp=cD1(2,3);cD1(2,3)=cD1(2,2);cD1(2,2)=temp;end% 如果message_pad(kk) == 1,elseif (message_vector(kk) == 1)% 且(2,2) > (2,3) ,交换它们if (cD1(2,2) >= cD1(2,3))temp=cD1(2,3);cD1(2,3)=cD1(2,2);cD1(2,2)=temp;endend% 检查(2,2) ,(2,3)的差是否>= kif cD1(2,2) > cD1(2,3)if cD1(2,2) - cD1(2,3) < kcD1(2,2)=cD1(2,2)+(k/2);cD1(2,3)=cD1(2,3)-(k/2);endelseif cD1(2,3) - cD1(2,2) < kcD1(2,3)=cD1(2,3)+(k/2);cD1(2,2)=cD1(2,2)-(k/2);endend%IDWTwatermarked_image(x:x+blocksize-1,y:y+blocksize-1)= idwt2(cA1,cH1,cV1,cD1,'haar',[Mc,Nc]);% 移动到下一块if (x+blocksize) >= Ncx=1;y=y+blocksize;elsex=x+blocksize;endwaitbar(kk/length(message_vector),h);endclose(h);% 转换为uint8并写入dwt_watermarked.bmp watermarked_image_uint=uint8(watermarked_image);imwrite(watermarked_image_uint,'dwt_watermarked.bmp','bmp');% 显示运行时间elapsed_time=cputime-start_time,% 计算psnr值psnr=psnr(cover_object,watermarked_image),% 显示图像figure(1)imshow(message);title('水印');figure(2)subplot(1,2,1);imshow(watermarked_image,[])title('嵌入水印图像')subplot(1,2,2);imshow('zimu.bmp');title('原图');(2)dwt1_recover.m%DWT源码%提取源码clear all;% 保存开始时间start_time=cputime;blocksize=8; % 设置块的大小% 读入嵌入水印图像file_name='dwt_watermarked.bmp';watermarked_image=double(imread(file_name));% 嵌入水印图像的行数与列数Mw=size(watermarked_image,1); %嵌入水印图像的行数Nw=size(watermarked_image,2); %嵌入水印图像的列数% 最大嵌入信息量max_message=Mw*Nw/(blocksize^2);% 读入原始水印file_name='c.bmp';orig_watermark=double(imread(file_name));% 原始水印的行数与列数Mo=size(orig_watermark,1); %原始水印的行数No=size(orig_watermark,2); %原始水印的列数% 将图像分块提取水印x=1;y=1;h=waitbar(0,'水印提取中,请等待');for (kk = 1:max_message)% 对块进行dwt变换[cA1,cH1,cV1,cD1] = dwt2(watermarked_image(x:x+blocksize-1,y:y+blocksize-1),'haar');% 如果cD1(2,2) > cD1(3,3) 那么message_vector(kk)=0% 否则message_vector(kk)=1if cD1(2,2)>cD1(3,3)message_vector(kk)=0;elsemessage_vector(kk)=1;end% 移动到下一块if (x+blocksize) >= Mwx=1;y=y+blocksize;elsex=x+blocksize;endwaitbar(kk/max_message,h);endclose(h);% 将message重新排列message_vector=message_vector(1,1:Mo*No); %%只需前Mo*No个message=reshape(message_vector,Mo,No);% 显示运行时间elapsed_time=cputime-start_time,% 显示提取水印与原始水印figure(3)subplot(1,2,1);imshow(message,[]);title('提取水印')subplot(1,2,2);imshow(orig_watermark,[])title('原始水印');六、运行结果:1、把C嵌入到图形中把c从水印图形中提取出来并对比七:结果分析:。
基于小波提升的数字图像水印算法及其MATLAB实现
罗建禄;杨娟;刘颖
【期刊名称】《电脑知识与技术》
【年(卷),期】2008(004)0z2
【摘要】数字水印技术作为数字媒体版权保护的有效办法,涉及到多个学科,迫切需要一种强大的研究工具.MATLAB以其自身具有的优势,正好可以成为研究数字水印的一种有效工具.文介绍了数字水印技柱实现的一般概念.提出了一种基于小波提升的图像数字水印算法.通过LMATLAB仿真结果表明,利用该算法具有处理速度快,嵌入水印信息量大、不可见性好等优点.
【总页数】3页(P45-46,50)
【作者】罗建禄;杨娟;刘颖
【作者单位】武警成都指挥学院,成都,610213;重庆通信学院,重庆,400035;武警成都指挥学院,成都,610213
【正文语种】中文
【中图分类】TP3
【相关文献】
1.一种基于小波变换的数字图像水印算法的实现 [J], 王群;侯江云
2.一种基于小波多级提升的数字图像水印算法 [J], 罗建禄;杨娟
3.基于PDF417和提升小波的数字图像水印算法 [J], 乔社娟;张菊香;高振江
4.基于提升小波的多功能彩色数字图像双水印算法 [J], 虞晓庆;李宏昌;张茂
5.基于离散余弦变换的数字图像水印算法及其MATLAB实现 [J], 罗建禄;杨娟
因版权原因,仅展示原文概要,查看原文内容请购买。
小波变换的数字水印算法及其matlab实现
1. 概述
数字水印技术是信息安全领域的重要研究方向之一,在数字水印技
术中,小波变换被广泛应用于数字图像的隐写和水印嵌入。
小波变换
是一种时域和频域综合分析的数学工具,它具有多分辨率分析的特点,因此适用于数字水印的隐藏和提取。
2. 小波变换的数字水印算法
小波变换的数字水印算法包括水印嵌入和水印提取两个部分。
在水
印嵌入部分,首先将原始图像进行小波变换,然后将水印信息嵌入到
小波系数中,最后进行逆小波变换得到带有水印的图像。
在水印提取
部分,首先对带有水印的图像进行小波变换,然后提取小波系数中的
水印信息,最后还原出原始的水印信息。
3. 小波变换的数字水印算法的matlab实现
假设我们要对一幅图像进行数字水印嵌入和提取,我们可以使用matlab工具进行实现。
我们可以利用matlab中的小波变换函数对图像进行小波变换,得到小波系数。
我们可以将水印信息以一定的规则
嵌入到小波系数中,得到带有水印的小波系数。
利用matlab中的逆小波变换函数将带有水印的小波系数还原成具有水印的图像。
在水印提
取部分,我们同样可以利用matlab中的小波变换函数对带有水印的图像进行小波变换,得到小波系数,然后提取出小波系数中的水印信息,
最后还原出原始的水印信息。
4. 结论
小波变换的数字水印算法是一种具有较高安全性和鲁棒性的数字水印算法,它广泛应用于数字图像的隐写和水印嵌入中。
利用matlab工具实现小波变换的数字水印算法不仅可以加快开发的速度,还可以便于算法的验证和分析。
希望本文可以对小波变换的数字水印算法及其matlab实现有所帮助。
5. 参考文献
[1] Cox I J, Miller M L, Bloom J A, et al. Digital Watermarking: Princi-ples Practices. Morgan Kaufmann,2001.
[2] 刘昆, 李煜,王裴,等.一种新的基于小波变换的数字图像不可见水印算法[J].计算机应用与软件,2005,22(6):42-44.数字水印技术是一种在数字媒体中隐藏信息的技术,旨在保护作品的版权、完整性、认证及追踪,同时又不会对原始媒体造成太大的修改,因此在当前的数字化信息传输和存储领域具有广泛的应用。
小波变换作为一种多分辨率分析的数学工具,被广泛应用于数字水印的嵌入和提取过程中。
其多分辨率的特点和良好的性能使得小波变换在数字媒体处理中具有重要的地位。
在这篇时长随着来源和特定角度的分析修改得来的文章中,我们提到了小波变换的数字水印算法,接下来我将对数字水印算法和其matlab
实现进行更加深入的说服。
在实际应用中,数字水印算法需要具备一定的性能指标,例如鲁棒性、安全性、容量和不可感知性等。
其中鲁棒性是指数字水印对于各种信
道和攻击的抵抗能力,安全性是指数字水印对未经授权的用户的保护
能力,容量是指数字水印可以携带的信息量,不可感知性是指数字水
印对原始媒体的影响应该尽可能小。
小波变换的数字水印算法能够很
好地满足这些性能指标,因此在实际应用中得到了广泛的应用和研究。
在数字水印嵌入的过程中,首先需要对原始图像进行小波变换,得到
各层的小波系数。
将水印信息嵌入到选定的小波系数中,这个过程需
要根据水印的强度和原始图像的特性来决定嵌入算法。
常用的嵌入算
法有LSB替换、扩频调制、量化嵌入等。
LSB替换将水印信息嵌入到
小波系数的最低有效位,扩频调制则是通过在小波系数上添加扩频信
号来嵌入水印,而量化嵌入则是通过调整小波系数的量化精度来嵌入
水印。
不同的算法有着不同的特点,可以根据具体的需求选择合适的
算法来进行水印嵌入。
水印提取的过程和嵌入过程相反,首先需要对带有水印的图像进行小
波变换,得到小波系数。
根据嵌入算法进行相应的提取操作,得到水
印信息。
最后还原出原始的水印信息。
在这个过程中,需要注意对小
波系数的保护和水印的检测,以提高水印的鲁棒性和安全性。
针对小波变换的数字水印算法进行matlab实现时,我们需要借助matlab中丰富的小波变换工具箱和图像处理工具箱。
通过调用相应的函数和工具,我们可以非常方便地对图像进行小波变换,并进行水印
嵌入和提取的算法实现。
在matlab中,有专门用于小波变换的函数,例如'dec2d'用于二维离散小波分解,'wavedec2'用于二维小波分解等,这些函数可以帮助我们快速地实现小波变换的数字水印算法。
matlab
中提供了丰富的图像处理工具,例如'imread'用于读取图像,
'imwrite'用于写入图像等,这些函数也是实现数字水印算法的重要辅助。
为了验证算法的鲁棒性和安全性,我们可以使用matlab中的图像处理工具进行各种攻击和信道噪声的模拟,例如加噪声、模糊、旋转、压
缩等,然后进行水印提取和验证。
这可以帮助我们更好地理解算法的
性能,并对算法进行优化和改进。
小波变换的数字水印算法在数字媒体处理领域具有重要的应用价值,
其matlab实现可以帮助我们快速地开发和验证算法。
希望相关研究者能够进一步深入研究小波变换的数字水印算法,并将其应用到更多的
实际场景中。
希望本文对小波变换的数字水印算法及其matlab实现有所帮助。
经过以上一系列的内容扩写,我们对小波变换的数字水印算法及其matlab实现有了更深入的理解。
希望读者能够通过本文,了解数字水
印技术的基本原理和matlab实现方法,在实际应用中更加灵活地运用小波变换的数字水印算法。
也对相关领域的进一步研究和应用提供一定的参考和启发。