基于LSB的数字水印算法及MATLAB实现
基于-小波-变换的数字水印-matlab的-实现

基于小波变换的数字水印与matlab的实现摘要:通过对数字水印的原理和算法的分析,了解信息隐藏的实现手段与效果。
在信息加载和提取过程中,突破传统的加密技术,用更具专业性的检测手段来保护专属的信息产权。
本文利用了水印良好的鲁棒性和不可感知性,致力于对图像的处理,通过实验与测试证实了数字水印可以达到理想的效果,并且运用恰当的算法可以更加简化操作的复杂性。
在此之外,数字水印还可以应用于声音,视频等领域。
其技术手段的实现的更加完善化会带来其更加广阔的应用前景。
关键字:数字水印;信息隐藏;MATLAB;水印检测与提取;JPEG压缩;1 数字水印技术简介1.1数字水印的发展背景随着数字技术和Internet网络的发展,各种形式的多媒体数字作品(图像、视频、音频等)纷纷以网络形式发表,然而数字作品的便利性和不安全性是并存的,它可以低成本、高速度地被复制和传播,而这些特性也容易被盗版者所利用。
因而,采用多种手段对数字作品进行保护、对侵权者进行惩罚己经成为十分迫切的工作。
数字水印技术的研究就是在这种应用要求下迅速发展起来的。
数字水印(digital watermarking)技术也称为数字指纹技术,它将具有特定意义的水印标记不可感知地嵌入到被保护的数字产品中,在产生版权纠纷时,通过相应的算法提取该水印,用以证明作者对该数字产品的所有权,并可作为鉴证、起诉非法侵权的证据。
数字水印技术基本上应当满足隐蔽性、安全性、鲁棒性和水印容量等几个方面的要求。
研究数字水印技术的最初目的是用于保护数字产品的版权,但随着研究的进一步深入,它在信息安全保护领域的应用越来越广泛,并在广播检测、图像认证、盗版跟踪、数字签名、交易水印、拷贝控制、标题与注释等各个领域产生了许多新的用途。
数字水印从正式提出到现在虽然时间不长,但它与传统的密码学相比有明显的优越性,为解决版权保护和内容完整性认证、来源认证、篡改认证、网上发行、用户跟踪等一系列问题提供了一个崭新的研究方向,因此它在数字产品的知识产权保护、商务交易中的票据防伪、声像数据的隐藏标识和篡改提示、隐蔽通信及其对抗等方面具有十分广阔的应用前景。
基于LSB的数字水印算法及MATLAB实现

基于LSB的数字水印算法及MATLAB实现
黄仿元
【期刊名称】《现代机械》
【年(卷),期】2008(000)002
【摘要】数字水印技术是近些年提出的一种信息隐藏技术,该技术为多媒体信息的版权保护提供了一种新的方法.本文首先介绍了数字水印技术的原理、特点及分类,然后讨论了基于LSB的数字水印算法,最后利用MATLAB7.0对这一算法进行了仿真.
【总页数】3页(P67-69)
【作者】黄仿元
【作者单位】贵州大学,职业技术学院,贵州,贵阳,550003
【正文语种】中文
【中图分类】TP3
【相关文献】
1.一种基于Wavelet-SVD数字水印算法的MATLAB实现 [J], 马婷
2.基于DCT数字水印算法的Matlab实现 [J], 任晓扬;韩勇
3.基于图像预处理的DCT数字水印算法及其MATLAB实现 [J], 冯战申;贺勤;臧振戎
4.基于LSB数字水印算法的研究与实现 [J], 王东东;王福明
5.基于DCT域的图像数字水印算法及matlab实现 [J], 吴和静;闵昆龙;刘芳;刘兴鹏
因版权原因,仅展示原文概要,查看原文内容请购买。
基于Matlab的数字水印设计——基于空域的水印实现

摘要数字水印(Digital Watermarking)技术是我们生活中经常见到的信息隐藏技术。
它将一些标识信息(即数字水印)直接嵌入数字载体中,但不影响原载体的使用价值,也不容易被人的知觉系统觉察或注意到。
空间数字水印是信息隐藏技术的一个重要研究方向,另一类是频率数字水印。
空间数字水印采用最低有效位(LSB)算法,通过修改表示数字图像的颜色或颜色分量的位平面,调整数字图像中感知不重要的像素来表达水印的信息,以达到嵌入水印的目的。
本实验是基于matlab的数字水印设计——基于空域的水印实现。
关键词:信息隐藏技术;空间数字水印; LSB算法;matlab目录1 设计任务与目的 (1)2 MATLAB的简介及应用 (1)2.1 MATLAB简介 (1)2.2 MATLAB应用 (1)3 数字水印技术 (2)3.1 数字水印技术的发展 (2)3.2 水印分类 (2)3.3 数字水印的特点 (3)3.4 数字水印技术的基本原理 (4)4 基于LSB的数字水印算法 (5)4.1 LSB算法原理 (5)4.2 LSB算法的实现 (6)4.2.1 水印嵌入算法 (7)4.2.2 水印提取算法 (9)5 MATLAB软件仿真 (11)5.1 仿真结果 (11)5.1.1 水印嵌入仿真 (11)5.1.2 水印提取仿真 (12)5.2 仿真分析 (13)结论 (14)参考文献 (15)基于Matlab的数字水印设计——基于空域的水印实现1 设计任务与目的(1)通过课程设计把自己在大学中所学的知识应用到实践当中。
(2)在课程设计的过程中掌握程序编译及软件设计的基本方法。
(3)深入了解利用Matlab设计基于Matlab的数字水印设计——基于空域的水印实现。
(4)提高自己对于新知识的学习能力及进行实际操作的能力。
(5)锻炼自己通过网络及各种资料解决实际问题的能力。
2 MATLAB的简介及应用2.1 MATLAB简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
一种基于LSB算法的数字水印改进技术

一种基于LSB算法的数字水印改进技术高会军;刘文霞;暴轩;张卫光;胡师【摘要】介绍数字水印技术的基本原理,详细论述基于最低有效位数字水印技术的实现过程,结合实际应用提出改进方案,通过Matlab实验给出同一载体图像嵌入不同容量水印后图像的PSNR值,得出了水印容量和鲁棒性相互制约的重要结论.实验证明了方案的可行性,最后指出这种技术的局限性.【期刊名称】《现代电子技术》【年(卷),期】2009(032)013【总页数】3页(P86-88)【关键词】LSB算法;数字水印;水印容量;PSNR【作者】高会军;刘文霞;暴轩;张卫光;胡师【作者单位】南海舰队指挥所,自动化站网络技术室,广东,湛江,524001;延安大学,物理与电子信息学院,陕西,延安,716000;南海舰队指挥所,数据库室,广东,湛江,524001;南海舰队指挥所,数据库室,广东,湛江,524001;南海舰队指挥所,数据库室,广东,湛江,524001【正文语种】中文【中图分类】TN3090 引言随着通信和计算机技术的发展,信息安全已成为人们普遍关注的问题。
随着因特网的日益普及,多媒体信息的使用已达到了前所未有的深度和广度,其发布形式也愈加丰富,这样就为创造者和使用者提供了很大的便利,但这些特性也容易被盗版者利用,因而,采用多种手段对数字作品进行保护,对侵权者进行惩罚已经成为十分迫切的工作。
版权标识水印是目前研究最多的一类数字水印。
应用数字水印技术,可以辨认媒体所有权信息、媒体合法用户信息。
数字水印与多媒体数据永久地结合在一起。
当该作品被盗版或出现版权纠纷时,所有者即可从盗版作品中获取水印信息作为依据,从而保护所有者的权益。
1 数字水印技术的基本原理1.1 数字水印基本模型[1,2]数字水印处理技术主要包括数字水印的嵌入、提取和检测。
通过的水印模型框架如图1、图2所示。
图1 数字水印嵌入模型图2 数字水印提取模型1.2 数字水印的特性数字水印有很多特性,其中最主要的三个特性是保真度、鲁棒性和容量。
LSB算法水印安全性测试及MATLAB实现

MATLAB - Matlab的优势和特点:(1)友好的工作平台和编程环境MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
(2)简单易用的程序语言Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C+语言极为相似,而且更加简单,更加符合科技人员对数字表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强,这也是MATLAB之所以能够深入到科学研究及工程计算各个领域的重要原因。
LSB算法水印安全性测试LSB算法水印源码1、嵌入源码clear all;% 保存开始时间start_time=cputime;% 读入原图像file_name='1.jpeg';[cover_object,map]=imread(file_name);% 读入水印图像file_name='2.jpeg';[message,map1]=imread(file_name);message1=message;message=double(message); %%转换为double数message=fix(message./2); %%转换为0,1组成的矩阵message=uint8(message); %%转换为uint8数% 原图的行数与列数Mc=size(cover_object,1); %原图的行数Nc=size(cover_object,2); %原图的列数% 水印的行数与列数Mm=size(message,1); %水印的行数Nm=size(message,2); %水印的列数% 将水印扩展为原图像大小,并写入watermarkfor ii = 1:Mcfor jj = 1:Ncwatermark(ii,jj)=message(mod(ii,Mm)+1,mod(jj,Nm)+1);endend% 将原图的最低有效位值换为水印的值watermarked_image=cover_object;for ii = 1:Mcfor jj = 1:Ncwatermarked_image(ii,jj)=bitset(watermarked_image(ii,jj),1,watermark(ii,jj)); endend% 将嵌入水印图像写入lsb_watermarked.jpegimwrite(watermarked_image,'lsb_watermarked.jpeg','jpeg');% 显示运行时间elapsed_time=cputime-start_time,% 显示嵌入水印图像figure(1)subplot(1,2,1)imshow(watermarked_image,[])title('嵌入水印图像')subplot(1,2,2)imshow(cover_object,[])title('原图像')%%扩展后水印for ii = 1:Mcfor jj = 1:Ncwatermark1(ii,jj)=message1(mod(ii,Mm)+1,mod(jj,Nm)+1);endendfigure(2)imshow(watermark1,[])title('扩展后的水印')figure(3)imshow(message1,[])title('原水印')2、提取源码clear all;% 保存开始时间start_time=cputime;% 读入嵌入水印图像file_name='lsb_watermarked.jpeg ';watermarked_image=imread(file_name);% 嵌入水印图像的行数与列数Mw=size(watermarked_image,1); %嵌入水印图像行数Nw=size(watermarked_image,2); %嵌入水印图像列数%读入原始水印file_name='2.jpeg';orig_watermark=imread(file_name);%%原始水印的行数与列数Mm=size(orig_watermark,1); %水印的行数Nm=size(orig_watermark,1); %水印的列数% 用嵌入水印图像的最低有效位重建水印for ii = 1:Mwfor jj = 1:Nwwatermark(ii,jj)=bitget(watermarked_image(ii,jj),1);endend% 将提取水印变为原始水印大小watermark=2*double(watermark);for ii = 1:Mm-1for jj = 1:Nm-1watermark1(ii+1,jj+1)=watermark(ii,jj);endendwatermark1(1,1)=watermark(Mm,Nm);% 显示运行时间elapsed_time=cputime-start_time,% 显示提取水印与原始水印figure(4)subplot(1,2,1)imshow(watermark1,[])title('提取水印')subplot(1,2,2)imshow(orig_watermark,[])title('原始水印')3、中值滤波处理二维中值滤波器对图像的处理是用一个二维的窗口去依次成块地覆盖图像中的像素,用覆盖的那些像素值的中值去取代窗口正中的那个像素的值。
基于Matlab的数字水印设计基于空域的水印实现

摘要数字水印(Digital Watermarking)技术是我们生活中经常见到的信息隐藏技术。
它将一些标识信息(即数字水印)直接嵌入数字载体中,但不影响原载体的使用价值,也不容易被人的知觉系统觉察或注意到。
空间数字水印是信息隐藏技术的一个重要研究方向,另一类是频率数字水印。
空间数字水印采用最低有效位(LSB)算法,通过修改表示数字图像的颜色或颜色分量的位平面,调整数字图像中感知不重要的像素来表达水印的信息,以达到嵌入水印的目的。
本实验是基于matlab的数字水印设计——基于空域的水印实现。
关键词:信息隐藏技术;空间数字水印; LSB算法;matlab目录1 设计任务与目的 (1)2 MATLAB的简介及应用 (1)2.1 MATLAB简介 (1)2.2 MATLAB应用 (1)3 数字水印技术 (2)3.1 数字水印技术的发展 (2)3.2 水印分类 (2)3.3 数字水印的特点 (3)3.4 数字水印技术的基本原理 (4)4 基于LSB的数字水印算法 (5)4.1 LSB算法原理 (5)4.2 LSB算法的实现 (6)4.2.1 水印嵌入算法 (7)4.2.2 水印提取算法 (9)5 MATLAB软件仿真 (11)5.1 仿真结果 (11)5.1.1 水印嵌入仿真 (11)5.1.2 水印提取仿真 (12)5.2 仿真分析 (13)结论 (14)参考文献 (15)基于Matlab的数字水印设计——基于空域的水印实现1 设计任务与目的(1)通过课程设计把自己在大学中所学的知识应用到实践当中。
(2)在课程设计的过程中掌握程序编译及软件设计的基本方法。
(3)深入了解利用Matlab设计基于Matlab的数字水印设计——基于空域的水印实现。
(4)提高自己对于新知识的学习能力及进行实际操作的能力。
(5)锻炼自己通过网络及各种资料解决实际问题的能力。
2 MATLAB的简介及应用2.1 MATLAB简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
基于数字水印的安全图像认证算法的Matlab实现

些 被 更 改 区域 的 图 像 尽 可 能地 恢 复 出来 。
基 于 参 数 化 整 数 小 波 变换 的基 本 思路
果 准 确 , 针 对 图 像 却 存 在 效率 不 高 、 能 但 不 指 出 图像 篡 改 区 域 、 全 性 不 高 的弊 端 。 安 数 字水印则弥补 数字签名技 术的这些 不足 ,
此 实现 的 特 点 , 过 为 了保 证 水 印 的 不 可 见 证 了水 印 的 安 全 性 。 外 采 用 基 于 提 升 格 不
1 数字水 印概述
数 字 水 印 依 据 应 用 可 分 为 鲁 棒 水 印 和 脆 弱 水 印 。 棒水 印或 称 稳 健 水 印 , 是指 鲁 它 移 、 转 等 ) 攻 击 下 仍 然 可 被 检 测 出来 , 旋 等
域 法 。 域 法 是 将 水 印 信 息 直 接 嵌 入 到 图 空
同 的 小 波 基 对 图像 进 行 变 换 , 要 确 保 参 只 印 的 嵌 入 算 法 , 难 以 穷 取 出 正 确 的 嵌 入 也 参数 , 而 无 法 实 施 有效 的伪 认证 攻 击 , 从 保
攻 脆 弱 水 印 的 算 法 可 分 为 空 域 法 和 变 换 数 的 取 值 空 间 足 够 大 , 击 者 即 使 知 道 水 像 的 像 素 中 , 法 具 有 嵌 入 速 度 快 及 容 易 该
基于LSB的数字水印算法及MATLAB实现

基于LSB 的数字水印算法及MATLAB 实现加密算法宗岳,王恺山东科技大学 山东,中国 ***************摘要—LSB 是一种简单传统的信息隐藏算法,属于数字水印技术中的一种。
本文首先介绍了LSB 技术的原理和特点,然后讨论了基于LSB 的数字水印算法。
最后利用MATLAB 2010 b2对这一算法的加密过程进行了仿真。
关键词:LSB 数字水印 信息隐藏 MATLABI. 介绍随着计算机应用逐渐广泛、网络技术的迅速发展,使音频、视频等多媒体信息都能以数字形式传输和播放,从而使大规模非授权拷贝成为了可能,而这样会损害音乐、电影、书籍和软件等出版业的发展,为了保护知识产权引发了一个很有意义的研究方向:信息隐藏。
本文首先介绍了了数字水印技术的原理和分类,接着对LSB 算法原理及LSB 算法实现进行了介绍,最后使用MATLAB 对其加密过程进行了仿真。
II. 数字水印技术的基本原理数字水印的主要 目的是将特定的信息加入到需要保护的媒体信息中,加入的信息一般是能够代表媒体信息版权的内容,如公司标志、媒体作者、特定代码等,而且要保证数字水印能够抵抗一定的攻击,而不被轻易的破坏和修改,同时数字水印要能够被提取或者能够被检测到。
数字水印的具体内容、算法、提取或检测过程根据实际应用有不同的要求。
数字水印的嵌入和提取过程如图1,图2所示。
图1 数 字水印的嵌入过程图2 数字水印的提取过程图1是数字水印的嵌入过程,加入密钥可以提高数字水印的隐蔽性、抗攻击性,而并非是必须的。
根据用途不同,,嵌入的水印有些是需要还原的,而有些则只需验证水印的存在性,前者需要数字水印的提取算法,而图2需要数字水印的检测算法,根据具体的水印算法,嵌入或提取的过程可能有所不同。
III. 数字水印的分类数字水印技术可以从不同的角度进行分类,因此有多种分类方法。
按数字水印的特性可分为鲁捧数字水印和脆弱数字水印。
鲁棒数字水印主要用于标识数字媒体信息的版权信息,它要求嵌入的水印能够抵抗对媒体的常规编辑和恶意攻击,在对媒体进行如:裁剪、旋转、缩放、压缩的变换后水印信息不受到较大损害。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于LSB 的数字水印算法及MATLAB 实现加密算法宗岳,王恺山东科技大学 山东,中国 ***************摘要—LSB 是一种简单传统的信息隐藏算法,属于数字水印技术中的一种。
本文首先介绍了LSB 技术的原理和特点,然后讨论了基于LSB 的数字水印算法。
最后利用MATLAB 2010 b2对这一算法的加密过程进行了仿真。
关键词:LSB 数字水印 信息隐藏 MATLABI. 介绍随着计算机应用逐渐广泛、网络技术的迅速发展,使音频、视频等多媒体信息都能以数字形式传输和播放,从而使大规模非授权拷贝成为了可能,而这样会损害音乐、电影、书籍和软件等出版业的发展,为了保护知识产权引发了一个很有意义的研究方向:信息隐藏。
本文首先介绍了了数字水印技术的原理和分类,接着对LSB 算法原理及LSB 算法实现进行了介绍,最后使用MATLAB 对其加密过程进行了仿真。
II. 数字水印技术的基本原理数字水印的主要 目的是将特定的信息加入到需要保护的媒体信息中,加入的信息一般是能够代表媒体信息版权的内容,如公司标志、媒体作者、特定代码等,而且要保证数字水印能够抵抗一定的攻击,而不被轻易的破坏和修改,同时数字水印要能够被提取或者能够被检测到。
数字水印的具体内容、算法、提取或检测过程根据实际应用有不同的要求。
数字水印的嵌入和提取过程如图1,图2所示。
图1 数 字水印的嵌入过程图2 数字水印的提取过程图1是数字水印的嵌入过程,加入密钥可以提高数字水印的隐蔽性、抗攻击性,而并非是必须的。
根据用途不同,,嵌入的水印有些是需要还原的,而有些则只需验证水印的存在性,前者需要数字水印的提取算法,而图2需要数字水印的检测算法,根据具体的水印算法,嵌入或提取的过程可能有所不同。
III. 数字水印的分类数字水印技术可以从不同的角度进行分类,因此有多种分类方法。
按数字水印的特性可分为鲁捧数字水印和脆弱数字水印。
鲁棒数字水印主要用于标识数字媒体信息的版权信息,它要求嵌入的水印能够抵抗对媒体的常规编辑和恶意攻击,在对媒体进行如:裁剪、旋转、缩放、压缩的变换后水印信息不受到较大损害。
而脆弱水印相反,它对攻击敏感,可以根据脆弱水印的状态判断原始信息是否被修改过。
按数字水印所附载的媒体可分为图像水印、音频水印、视频水印和文本水印等。
每一种数字化的媒体都有相应的水印算法,这也造成了数字水印算法的复杂性。
按数字水印隐藏的位置划分可以分为空 (时)域数字水印、频域数字水印、时/频域数字水印和时间/度数字水印。
原始信息通常在空域或者时域上表示,根据信号处理理论有多种变换将信号变化到另外的域上,每一种域上都可以嵌入数字水印,也就产生了相应的数字水印算法。
·按数字水印的可见性可以分为可见数字水印和非可见数字水印。
可见数字水印通常是将公司表示叠加到原始图像上,算法比较简单,也有相应的应用软件,如Undreamt Marking Technologies公司的Photo Watermark。
而不可见数字水印要求嵌入的水印是不能被人的视觉系统感知的,其算法相对复杂。
关于数字水印算法的分类还有很多不同的分类方法,比如按用途划分,按检测过程划分等,限于篇幅,本文仅介绍了较为常见的几种分类。
IV.基于LSB的数字水印算法LSB是Least Singificant Bit的缩写,意思是最不重要比特位。
LSB数字水印算法按照上文介绍的四种数字水印分类方法分别属于:鲁棒性数字水印、图像数字水印、空域数字水印、不可见数字水印。
LSB算法利用了数字图像处理中位平面的原理,即改变图像的最低位的信息,对图像信息产生的影响非常小人眼的视觉感知系统往往不能察觉。
以一幅256灰度的图像为例,256灰度共需要8个位来表示,但其中每一个位的作用是不一样的,越高位对影像的影响越大,反之越低的位影响越小,甚至不能感知。
V.L SB算法的实现LSB算法实现较为简单,首先,需要考虑嵌入的数字水印的数据量,如果嵌入最低的1位,则可以嵌入的信息量是原始图像信息量的1/8,如果适用最低两位则可以嵌入的信息量是1/4。
但是嵌入的数字水印的信息量越大,同时对图像的视觉效果影响也越大。
在这里要嵌入一个二值的图像。
然后,适当调整数字水印图像的大小和比特位数,以适应数字水印图像数据量的要求。
最后,对原始图像中要使用的最低位置0,再将数字水印数据放人原始图像的最低位即可。
下面通过MATLAB 2010b2实现这一算法这里选用一幅300×400像素,256灰度的图像,数字水印用“山东科技大学”的字样的二值图像。
置0的方法是调用模2函数mod(a,2),将得到的数值与原水印相减,从而得到最低位为0的图片。
(使用两位最低有效位的话则用模4函数mod(a,4)然后相减)。
因为这里加入了噪声干扰,所以对水印和原始图片进行了重编码,首先将原图片扩大两倍,并且使用两位最低有效位然后图片相加得到加入水印的图像。
然后对图片加入噪声得到输出图像。
程序如下:得到的图形如下所示:图3 原始图片图4 水印图片图5 加入水印后的图片LSB 算法简单,实现容易,同时可以保证数字水印的不可见性,由于可以在最低位的每个像素上都插人数字水印信息,因此有较大的信息嵌入量。
LSB 算法一般嵌入图像的最低一位或者两位,如果嵌入的位数太多,则会被人眼察觉到。
但是由于数字水印位于图像的不重要像素位上,因此很容易被图像过滤、量化和几何型变等操作破坏,以致无法恢复数字水印。
针对基本的LSB 算法的缺点,一些研究 者也提出了一些改进的算法,如奇偶标识位隐藏算法、索引数据链隐藏算法等,这些算 法能增强数字水印的隐蔽性。
VI. 结束语数字水印技术是近年来兴起的一门较前沿的技术,还处在发展阶段,没有统一的国际标准,缺乏完善的软件系统。
但是数字水印技术作为信息加密技术的分支,在知识产权的保护方面有着广泛的应用前景。
LSB 数字水印算法作为最早提出的数字水印算法,特点是原理简单,实现容易,掌握这以算法对于深入研究学习数字水印技术很有必要。
ma(2*i,2*j) = imgread(i,j); mb(2*i-1,2*j-1) = mbt(i,j); mb(2*i,2*j-1) = mbt(i,j); mb(2*i-1,2*j) = mbt(i,j); mb(2*i,2*j) = mbt(i,j); end endma = ma+mb*3;%======================= % attack%======================= noise = normrnd(0,0.3,2*maa,2*mab); ma = double(ma); ma = ma+ noise; ma = uint8(ma); figure(1);subplot(2,2,1);imshow(imgread); subplot(2,2,2);imshow(mbt,[0,1]); subplot(2,2,3);imshow(ma);附带全部代码:clear allclose all%=========================% read image%=========================mat = imread('1.jpg');mbt = imread('2.bmp');imgread = rgb2gray(mat);mbt = uint8(mbt);[maa,mab] = size(imgread);%[mba,mbb] = size(mbt);md = ones(maa,mab);ma = zeros(2*maa,2*mab);ma = im2uint8(ma);%========================% progress the image%========================for i=1:1:maafor j=1:1:mabimgread(i,j)=imgread(i,j)-mod(imgread(i,j),4);endend%========================%enlarge image%=======================for j=1:1:mabfor i=1:1:maama(2*i-1,2*j-1) = imgread(i,j);ma(2*i,2*j-1) = imgread(i,j);ma(2*i-1,2*j) = imgread(i,j);ma(2*i,2*j) = imgread(i,j);mb(2*i-1,2*j-1) = mbt(i,j);mb(2*i,2*j-1) = mbt(i,j);mb(2*i-1,2*j) = mbt(i,j);mb(2*i,2*j) = mbt(i,j);endendma = ma+mb*3;%=======================% attack%=======================noise = normrnd(0,0.2,2*maa,2*mab); % Gaussian, uniform,% laplace,salt-pepperma = double(ma);ma = ma+ noise;ma = uint8(ma);figure(1);subplot(2,2,1);imshow(imgread);subplot(2,2,2);imshow(mbt,[0,1]); subplot(2,2,3);imshow(ma);%subplot(2,2,1);imshow(mb,[0,1]);subplot( 2,2,2);imshow(ma);subplot(2,2,3);imshow(mc );%=======================% watermark extraction%=======================for i=1:1:maafor j=1:1:maba=mod(ma(2*i-1,2*j-1),2)+mod(ma(2*i,2*j-1), 2)+mod(ma(2*i-1,2*j),2)+mod(ma(2*i,2*j),2);a=(-a+mod(ma(2*i-1,2*j-1),4)+mod(ma(2*i,2* j-1),4)+mod(ma(2*i-1,2*j),4)+mod(ma(2*i,2*j ),4))/2;if a<4md(i,j)=0;endendendmd = uint8(md);figure(2);imshow(md,[0,1]);。