matlab数字水印嵌入与提取代码

合集下载

matlab dwt方法水印嵌入与提取

matlab dwt方法水印嵌入与提取

一、水印技术概述水印技术是指在数字媒体中嵌入一些特定信息,以保护数字内容的版权和完整性。

水印技术可以分为可见水印和不可见水印,其中不可见水印更适用于数字图像和音频等领域。

本文主要介绍基于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仿真的数字水印技术

体 有 可 能 在 没有 得 到作 品所 有 者 的 许 可 下 复 制 和传 播 有 版 权 的 信 息 ,以此 来谋 取 利 益 ,大大 地侵 犯 了数 字作 品原 有者 的利 益 。
数 字 化 技 术 本 身 的 可 复 制 和 广 泛 传 播 的特 性 带 来 的 负 面 效 应 ,
道 数 字水 印算 法 ( 包 括嵌 入 和提 取 算 法 ) 的情 况 下 ,恶 意 地 进 行 各 种攻 击 操 作 ,试 图 实 现 未经 授 权 的嵌 入 、提 取 或 检 测 、删 除 水 印 等 时 ,依 然 可 以 保证 水 印 的正 确 。
2 _ 2 _ 2可证 明性
只有 专用 的 检测 器或 计算 机 软件 才可 以检 测 出隐 藏 的数字 水 印 。 在 多媒 体 中加 入数 字 水 印可 以确 立 版 权 所 有 者 、认 证 多媒
电 子 商 务 认 证 、 医 学 影 像 技 术 等 方 面 具 有 十 分 广 阔 的 应 用 前 景 。 虽然 数 字 水 印 技 术 还处 于发 展 之 中 ,但 是 不 久 的 未 来 ,数 字水 印技 术 的市 场 将会 更 加 广 阔 。
完 全 和 可靠 的证 据 。 水 印算 法 能 够 识 别 被 嵌 入 到 保 护 对 象 中 的 信 息 ,并 能在 需 要 的 时 候将 其 提 取 出来 。水 印可 以用 来 判 别 对 象 是 否 受 到保 护 .并 能 够监 视被 保 护 数 据 的传 播 、真 伪 鉴 别 以 及 非 法拷 贝控 制 等 。
置 ,实现数 字信 息的嵌 入 。使 用 DCT方 法获得 的水 印通常 具有很好 的不可见 性和鲁 棒性 ,并能 够
抵抗 诸如 I P E G压 缩等 攻击 手段

matlab 频域水印嵌入算法

matlab 频域水印嵌入算法

matlab 频域水印嵌入算法频域水印嵌入算法是一种在频域领域进行数字水印嵌入的技术。

它通过将水印嵌入到图像的频域表示中,实现对图像进行保护和认证的目的。

本文将介绍频域水印嵌入算法的原理、步骤及其在实际应用中的优势。

频域水印嵌入算法是基于图像的频域表示进行操作的。

在这种算法中,首先将原始图像转换为频域表示,一般采用傅里叶变换或小波变换等方法。

然后,在频域中选择适当的位置,将水印信息嵌入到图像中。

最后,通过逆变换将嵌入了水印的频域图像转回到空域,得到最终的水印图像。

频域水印嵌入算法的具体步骤如下:1. 图像预处理:对原始图像进行预处理,包括调整大小、去噪等操作,以提高水印嵌入的效果。

2. 频域变换:将预处理后的图像转换为频域表示。

傅里叶变换是最常用的频域变换方法,它将图像分解为不同频率的正弦和余弦分量。

小波变换则是一种多尺度分析的方法,可以更好地表达图像的局部特征。

3. 水印嵌入:选择适当的频域位置,将水印信息嵌入到图像中。

常用的嵌入方法包括直接替换频域系数、扩频嵌入等。

嵌入过程需要考虑到水印的可见性和鲁棒性,即水印应该能够在不影响图像质量的情况下被提取出来,并且对一些攻击如压缩、滤波等具有一定的抵抗能力。

4. 频域反变换:将嵌入了水印的频域图像通过逆变换转回到空域。

这一步骤是为了得到最终的水印图像,以便进行后续的水印提取或认证操作。

频域水印嵌入算法相比于空域水印嵌入算法具有以下优势:1. 鲁棒性更强:频域水印嵌入算法对一些常见的攻击如压缩、滤波等具有较好的抵抗能力。

这是因为频域变换将图像分解为不同频率的分量,而水印嵌入通常集中在较低频率的分量上,这使得水印更不容易受到一些常规处理的影响。

2. 隐蔽性更好:频域水印嵌入算法可以在不影响图像质量的情况下嵌入水印信息。

这是因为频域变换将图像转换为频率域表示,一些细节信息被分解到较高频率的分量中,而低频分量对人眼的感知影响较大。

因此,在低频分量上嵌入水印可以实现较好的隐蔽性。

基于Matlab的数字水印设计——基于空域的水印实现

基于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的数字水印技术实现

基于MATLAB的数字水印技术实现

ira e r ed iwi m re t iso m hw
读 映像 图像 图像 文件 的保 存 显示 图像
ma t 2
ga ry mm2 dt c 2 dt c 2
d t w2 i t d 2 w w vdc aee2 w vrc aee2 i m i m2
快 速 离 散 傅 立 叶 变 换 2维 快 速 离 散傅 立 叶 变换 2维 离 散余 弦 变换 2维 离 散 余 弦 反 变换
号进 行频 域反 变换 (D I WT、 T、 F WP , 到 I DC D T、 ) 得
含有 水 印信 息的信号 。
收 搞 日期 :0 7 O — 2 20 一 1 1
作 者 简 介 : t E17 一, , 徽巢 湖人 。 陵学 院电 气 工程 系教 师 。安徽 大 学 20 : Ud ( 7 ) 安 E 9 女 铜 0 4级 硕 士研 究 生 , 究 方 向 : 能 研 智 信号处理。
实用工具一 T A MA L B。
2 数 字水 印技术
以正常 使用 内嵌 水 印 的数字产 品 . 如有 非法 盗 用 行 为 . 很 容 易 被 发现 或 查 处 , 效 维 护 了所 有 则 有 者 的权 益 . 防止和 打击 了盗用 者 的非法行 为 。
22数 字水 印的一般 模型 .
M TA A L B被 广泛应 用 于数 值计 算 、 字信 号 数 处 理 、 统识 别 、 系 自动 控 制 、 经 网 络控 制 、 神 图形 图像 等诸 多领域 【 l 】 。
究 中的常用 函数 ( 1 。 表 )
表 1常用 函数 汇总
la od
SaVe
将 } m t 件读 入工 作 空 间 。 a文 将 } m t 件 写 入磁 盘 。 a文 根 据 矩 阵 数 据 创 建 灰 度 图像

matlab数字水印算法及实现和源代码

matlab数字水印算法及实现和源代码

1.数字作品的知识产权保护----数字作品(如电脑美术、扫描图像、数字音乐、视频、三维动画)的版权保护是当前的热点问题。

由于数字作品的拷贝、修改非常容易,而且可以做到与原作完全相同,所以原创者不得不采用一些严重损害作品质量的办法来加上版权标志,而这种明显可见的标志很容易被篡改。

----“数字水印”利用数据隐藏原理使版权标志不可见或不可听,既不损害原作品,又达到了版权保护的目的。

目前,用于版权保护的数字水印技术已经进入了初步实用化阶段,IBM公司在其“数字图书馆”软件中就提供了数字水印功能,Adobe公司也在其著名的Photoshop软件中集成了Digimarc公司的数字水印插件。

然而实事求是地说,目前市场上的数字水印产品在技术上还不成熟,很容易被破坏或破解,距离真正的实用还有很长的路要走。

2.商务交易中的票据防伪----随着高质量图像输入输出设备的发展,特别是精度超过 1200dpi 的彩色喷墨、激光打印机和高精度彩色复印机的出现,使得货币、支票以及其他票据的伪造变得更加容易。

----另一方面,在从传统商务向电子商务转化的过程中,会出现大量过度性的电子文件,如各种纸质票据的扫描图像等。

即使在网络安全技术成熟以后,各种电子票据也还需要一些非密码的认证方式。

数字水印技术可以为各种票据提供不可见的认证标志,从而大大增加了伪造的难度。

3.证件真伪鉴别----信息隐藏技术可以应用的范围很广,作为证件来讲,每个人需要不只一个证件,证明个人身份的有:身份证、护照、驾驶证、出入证等;证明某种能力的有:各种学历证书、资格证书等。

国内目前在证件防伪领域面临巨大的商机,由于缺少有效的措施,使得“造假”、“买假”、“用假”成风,已经严重地干扰了正常的经济秩序,对国家的形像也有不良影响。

通过水印技术可以确认该证件的真伪,使得该证件无法仿制和复制。

4.声像数据的隐藏标识和篡改提示----数据的标识信息往往比数据本身更具有保密价值,如遥感图像的拍摄日期、经/纬度等。

基于Matlab的数字水印设计――基于DCT域的水印实现

基于Matlab的数字水印设计――基于DCT域的水印实现

基于Matlab的数字水印设计――基于DCT域的水印实现沈阳理工大学数字图像处理课程设计摘要数字水印(Digital Watermark)技术是指用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。

数字水印是信息隐藏技术的一个重要研究方向。

随着数字水印技术的发展,数字水印的应用领域也得到了扩展,数字水印的基本应用领域是版权保护、隐藏标识、认证和安全不可见通信。

当数字水印应用于版权保护时,潜在的应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模的广播服务。

数字水印用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容的检索等领域得到应用。

数字水印的认证方面主要ID卡、信用卡、ATM卡等上面数字水印的安全不可见通信将在国防和情报部门得到广泛的应用。

本文主要是根据所学的数字图象处理知识,在MATLAB环境下,通过系统编程的方式,建立并实现基于DCT域的数字水印加密系统。

该系统主要包含数字水印的嵌入与提取,仿真结果表明,数字水印算法具有有效性、可靠性、抗攻击性、鲁棒性和不可见性,能够为数字媒体信息在防伪、防篡改、认证、保障数据安全和完整性等方面提供有效的技术保障。

关键词:数字水印;MATLAB;DCTI沈阳理工大学数字图像处理课程设计目录1 课程设计目的 ........................................................................... ............................... 1 2 课程设计要求 ........................................................................... ............................... 2 3 数字水印技术基本原理 ........................................................................... (3)3.1 数字水印基本框架 ........................................................................... ............. 3 3.2 算法分类 ........................................................................... .. (3)3.2.1 DCT法 ........................................................................... ...................... 4 3.2.2 其他方法 ........................................................................... ................... 4 3.3 实际需要考虑的问题 ........................................................................... (4)3.3.1 不可见性 ........................................................................... ................... 4 3.3.2 鲁棒性 ........................................................................... ....................... 5 3.3.3 水印容量 ........................................................................... ................... 5 3.3.4 安全性 ........................................................................... .. (5)4 基于DCT变换仿真 ........................................................................... (6)4.1 算法原理 ........................................................................... .. (6)4.1.1 准备工作 ........................................................................... ................... 6 4.1.2 选取8*8变换块 ........................................................................... ....... 7 4.1.3 边界自适应 ........................................................................... ............... 7 4.1.4 DCT变换与嵌入 ........................................................................... ...... 7 4.1.5 恢复空域 ........................................................................... ................... 8 4.2 嵌入算法扩展 ........................................................................... (8)4.2.1 RGB彩色图像三个矩阵的划分 ........................................................ 8 4.2.2 八色彩色水印 ........................................................................... ........... 8 4.3 水印的提取 ........................................................................... ......................... 9 4.4 仿真程序 ........................................................................... ............................. 9 5 结果分析 ........................................................................... ..................................... 14 结束语 ........................................................................... ............................................... 16 参考文献 ........................................................................... . (17)II沈阳理工大学数字图像处理课程设计1 课程设计目的数字水印技术是用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。

数字水印算法设计

数字水印算法设计

课程设计任务书学生姓名:蒋立豪专业班级:通信1303班指导教师:李瑞芳工作单位:信息工程学院题目: 数字水印算法设计初始条件:设计任务:学习掌握一种数字水印算法,选择两幅图像分别作为版权图像和水印图像,采用水印嵌入算法成生含水印图像。

采用水印提取算法,提取出嵌入水印。

并对水印算法的鲁棒性进行测试。

(1)掌握一种数字水印的嵌入与提取算法原理;(2)编写出水印嵌入算法的matlab程序,并给出水印嵌入前后的版权图像,并对嵌入效果进行分析说明;(3)编写出水印提取算法matlab程序,并给出水印原图和提取出的水印图像,并对水印的提取效果进行分析说明;(4)进行水印的抗攻击实验,噪声攻击,剪切攻击,缩放攻击,压缩攻击等。

测定提取前后水印的峰值信噪比(PSNR)和相关性(NC);时间安排:指导教师签名:年月日系主任(或责任教师)签名:年月日摘要 (I)Abstract (II)1 MATLAB概述 (1)1.1 MATLAB的优点 (1)2 数字水印概述 (2)2.1 数字水印技术的应用领域 (2)2.2 数字水印的基本特点 (4)2.3 数字水印的分类 (5)2.4 数字水印技术的研究动态 (7)3 典型的数字水印算法 (8)3.1 空域算法 (8)3.2 变换域算法 (8)3.3 压缩域算法 (10)3.4 NEC算法 (11)3.5 生理模型算法 (11)4 DCT算法的概述 (12)4.1. 离散余弦变换(DCT)的定义 (12)4.2 离散余弦变换(DCT)水印嵌入算法 (14)4.3 离散余弦变换(DCT)水印提取算法 (14)4.4 离散余弦变换(DCT)水印算法原理框图 (14)5 抗攻击实验 (16)5.1 水印嵌入和提取 (16)5.2 抗攻击实验 (19)5.2.1 噪声攻击 (20)5.2.2 滤波攻击 (21)5.2.3 压缩攻击 (22)5.2.4 剪切攻击 (23)5.2.5 旋转攻击 (24)6 小结与体会 (26)参考文献 (27)附录 (28)随着计算机通信技术和互联网的迅速发展,数字多媒体的传播业越来越方便快捷。

基于Matlab的数字水印设计基于空域的水印实现

基于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两大部分。

(完整word版)数字水印源码

(完整word版)数字水印源码

数字水印源码,希望对大家学习有帮助.%由高斯正态分布序列g1 产生36×4 的水印信%号w0,w0 由(0,1)组成。

clearrandn(’state’,1106);g1=randn(36,4);for i=1:36for j=1:4if g1(i,j)〉=0w0(i,j)=1;else w0(i,j)=0;end;end;end;figure;imshow(w0);title('水印');%对水印信号w0 进行(7,4)汉明编码,得到一%36×7 的分组码x0。

x0=w0;for i=1:36s=8*x0(i,1)+4*x0(i,2)+2*x0(i,3)+x0(i,4);x0(i,5)=0;x0(i,6)=0;x0(i,7)=0;case 1x0(i,5)=0;x0(i,6)=1;x0(i,7)=1; case 2x0(i,5)=1;x0(i,6)=1;x0(i,7)=0; case 3x0(i,5)=1;x0(i,6)=0;x0(i,7)=1; case 4x0(i,5)=1;x0(i,6)=1;x0(i,7)=1; case 5x0(i,5)=1;x0(i,6)=0;x0(i,7)=0;case 6x0(i,5)=0;x0(i,6)=0;x0(i,7)=1;case 7x0(i,5)=0;x0(i,6)=1;x0(i,7)=0;case 8x0(i,5)=1;x0(i,6)=0;x0(i,7)=1;case 9x0(i,5)=1;x0(i,6)=1;x0(i,7)=0;case 10x0(i,5)=0;x0(i,6)=1;x0(i,7)=1;case 11x0(i,5)=0;x0(i,6)=1;x0(i,7)=0;case 13x0(i,5)=0;x0(i,6)=0;x0(i,7)=1;case 14x0(i,5)=1;x0(i,6)=0;x0(i,7)=0;case 15x0(i,5)=1;x0(i,6)=1;x0(i,7)=1;end;end;% 对x0 进行行向位扩展,得到一个由(—1,1)组成%的扩展序列y。

数字水印算法(包含完整程序)

数字水印算法(包含完整程序)

课程设计任务书学生姓名:_______________ 专业班级:______________________ 指导教师:_______________ 工作单位:武汉理工大学题目:数字水印算法设计初始条件:(1) Mat lab应用软件的基本知识以及基本操作技能。

(2)高等数学、信号与系统等基础运算知识。

要求完成的主要任务:(1)掌握一种数字水印的嵌入与提取算法原理。

(2)编写出水印嵌入算法的mat lab程序,并给出水印嵌入前后的版权图像,并对嵌入效果进行分析说明。

(3)编写出水印提取算法mat lab程序,并给出水印原图和提取出的水印图像, 并对水印的提取效果进行分析说明。

(4)进行水印的抗攻击实验,噪声攻击,剪切攻击,缩放攻击,压缩攻击等。

测定提取前后水印的峰值信噪比(PSNR)和相关性(NC)。

时间安排:6月20日到6月27日6月28日到7月3日7月4日理论设计与仿真撰写报告答辩年月日指导教师签名:系主任(或责任教师)签名:摘要 (2)ABSTRACT (3)1........................................................................................................................ 数字水印技术概述 (4)数字水印技术提出的背景 (4)数字水印的基本特点 (4)数字水印的应用 (5)软件的介绍 (7)MATLAB研究数字水印的优点 (7)MATLAB函数介绍 (8)3.傅立叶域水印理论基础 (10)傅立叶变换简述 (10)一维离散傅立叶变换DFT (10)快速傅立叶变换FFT (11)二维离散傅立叶变换 (12)傅立叶变换性质 (13)空间域平移性 (13)旋转不变性 (14)比例缩放性 (14)4.基于傅立叶域相关性检测的半盲水印 (15)引言 (15)基于Arnold变换的图像置乱算法 (15)水印算法 (17)算法原理 (17)算法的mat lab实现步骤 (20)算法的matlab实现及结果分析 (21)5.总结与心得体会 (26)6.参考文献 (27)附录 (28)随着计算机及网络技术的E速发展,数字作品传播和拷贝变得越来越方便, 同时使得数字作品的信息安全保护和版权保护也成为迫切需要解决的实际问题。

数字水印算法设计

数字水印算法设计

课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目:数字水印算法设计初始条件:MATLAB软件平台、版权图像、水印图像要求完成的主要任务:1.设计任务学习掌握一种数字水印算法,选择两幅图像分别作为版权图像和水印图像,采用水印嵌入算法成生含水印图像。

采用水印提取算法,提取出嵌入水印。

并对水印算法的鲁棒性进行测试。

2.设计要求①掌握一种数字水印的嵌入与提取算法原理。

②编写出水印嵌入算法的matlab程序,并给出水印嵌入前后的版权图像,并对嵌入效果进行分析说明。

③编写出水印提取算法matlab程序,并给出水印原图和提取出的水印图像,并对水印的提取效果进行分析说明。

④进行水印的抗攻击实验,噪声攻击,剪切攻击,缩放攻击,压缩攻击等。

测定提取前后水印的峰值信噪比(PSNR)和相关性(NC)时间安排:第18-19周。

目录摘要 (1)1数字水印概念 (2)1.1数字水印分类 (2)1.2数字水印特点 (2)2数字水印算法 (3)2.1数字水印基本模型 (3)2.2常见数字水印算法 (4)2.2.1空间域算法 (4)2.2.2变换域算法 (4)2.2.3其他算法 (5)2.3离散余弦变换(DCT算法 (5)2.3.1DCT变换公式 (5)2.3.2二维DCT的性性质 (6)2.4离散余弦变换的水印嵌入 (7)2.5离散余弦变换的水印提取 (8)3数字水印算法的MATLAB^程 (9)3.1数字水印的嵌入 (9)3.2数字水印的提取 (11)4数字水印的抗攻击实验 (12)4.1噪声攻击 (13)4.2滤波攻击 (14)4.3压缩攻击 (15)4.4剪切攻击 (16)4.5旋转攻击 (17)5小结与体会 (18)参考文献 (18)附录 (19)摘要数字水印技术近年来得到了较大的发展,基于变换域的水印技术是目前研究的热点。

数字水印是利用数字作品中普遍存在的冗余数据和随机性,把标识版权的水印信息嵌入到数字作品中,从而可以起到保护数字作品的版权或其完整性的一种技术。

基于LSB的数字水印算法及MATLAB实现

基于LSB的数字水印算法及MATLAB实现

基于LSB 的数字水印算法及MATLAB 实现加密算法宗岳,王恺山东科技大学 山东,中国 ***************摘要—LSB 是一种简单传统的信息隐藏算法,属于数字水印技术中的一种。

本文首先介绍了LSB 技术的原理和特点,然后讨论了基于LSB 的数字水印算法。

最后利用MATLAB 2010 b2对这一算法的加密过程进行了仿真。

关键词:LSB 数字水印 信息隐藏 MATLABI. 介绍随着计算机应用逐渐广泛、网络技术的迅速发展,使音频、视频等多媒体信息都能以数字形式传输和播放,从而使大规模非授权拷贝成为了可能,而这样会损害音乐、电影、书籍和软件等出版业的发展,为了保护知识产权引发了一个很有意义的研究方向:信息隐藏。

本文首先介绍了了数字水印技术的原理和分类,接着对LSB 算法原理及LSB 算法实现进行了介绍,最后使用MATLAB 对其加密过程进行了仿真。

II. 数字水印技术的基本原理数字水印的主要 目的是将特定的信息加入到需要保护的媒体信息中,加入的信息一般是能够代表媒体信息版权的内容,如公司标志、媒体作者、特定代码等,而且要保证数字水印能够抵抗一定的攻击,而不被轻易的破坏和修改,同时数字水印要能够被提取或者能够被检测到。

数字水印的具体内容、算法、提取或检测过程根据实际应用有不同的要求。

数字水印的嵌入和提取过程如图1,图2所示。

图1 数 字水印的嵌入过程图2 数字水印的提取过程图1是数字水印的嵌入过程,加入密钥可以提高数字水印的隐蔽性、抗攻击性,而并非是必须的。

根据用途不同,,嵌入的水印有些是需要还原的,而有些则只需验证水印的存在性,前者需要数字水印的提取算法,而图2需要数字水印的检测算法,根据具体的水印算法,嵌入或提取的过程可能有所不同。

III. 数字水印的分类数字水印技术可以从不同的角度进行分类,因此有多种分类方法。

按数字水印的特性可分为鲁捧数字水印和脆弱数字水印。

鲁棒数字水印主要用于标识数字媒体信息的版权信息,它要求嵌入的水印能够抵抗对媒体的常规编辑和恶意攻击,在对媒体进行如:裁剪、旋转、缩放、压缩的变换后水印信息不受到较大损害。

基于LSB的图像数字水印实验

基于LSB的图像数字水印实验

基于LSB的图像数字⽔印实验1. 实验类别设计型实验:MATLAB设计并实现基于LSB的图像数字⽔印算法。

2. 实验⽬的了解信息隐藏中最常⽤的LSB算法的特点,掌握LSB算法原理,设计并实现⼀种基于图像的LSB隐藏算法。

条件实验条件3. 实验(1) Windows 2000或Windows Xp以上操作系统;(2) MATLAB 6.5以上版本软件;(3)图像⽂件4. 实验原理基于LSB的图像数字⽔印任何多媒体信息在数字化时都会产⽣物理随机噪声,⽽⼈的感官系统对这些随机噪声并不敏感。

替换技术就是利⽤这个原理,通过使⽤秘密信息⽐特替换随机噪声,从⽽实现信息隐藏⽬的。

图像⾼位平⾯对图像感官质量起主要作⽤,去除图像最低⼏个位平⾯并不会造成画⾯质量的下降。

利⽤这个原理可⽤秘密信息(或称⽔印信息)替代载体图像低位平⾯以实现信息嵌⼊。

LSB算法选⽤最低位平⾯来嵌⼊秘密信息,最低位平⾯对图像的视觉效果影响最轻微,但很容易受噪声影响和攻击,可采⽤冗余嵌⼊的⽅式来增强稳健性加以解决,即在⼀个区域中嵌⼊相同的信息,提取时根据该区域中的所有像素判断。

1.嵌⼊⽔印.m脚本代码:clear all;clc;picpath = input('请输⼊图⽚绝对路径(加单引号):');watermark_path = input('请输⼊⽔印⽂件绝对路径(加单引号):');msgfid = fopen(watermark_path,'r'); % 打开秘密⽂件,读⼊秘密信息[key,count] = fread(msgfid,'ubit1'); % 读取秘密信息,存⼊key,count为成功读⼊了多少位fclose(msgfid); % 关闭⽂件i = imread(picpath);i1 = i(:,:,1); % 提取RGB第1层嵌⼊⽔印[row,col] = size(i1); % x⾏y列contents = row * col; % 图像能嵌⼊⽔印最⼤⽐特数if count > contentsdisp('warning: 当前图⽚容量⽆法通过LSB⽅法嵌⼊所有⽔印信息!按enter退出matlab.');pause;quit;elsedisp(['当前图⽚通过LSB能嵌⼊的最⼤⽔印⽐特数为: ',num2str(contents),' bits']);endkey_counter = 1;round_counter = 0;total_watermark_bits = 0;if mod(count,row) == 0round = floor(count/row);elseround = floor(count/row) + 1;endfor ii=1:1:roundfor jj = 1:1:rowi1(jj,ii) = bitset(i1(jj,ii),1,key(key_counter,1));% bitset函数改变像素值最后⼀位bit为⽔印bit值key_counter = key_counter + 1;total_watermark_bits = total_watermark_bits + 1;if key_counter > countbreak;endend %内层forround_counter = round_counter + 1;disp(['当前嵌⼊轮数: ',num2str(round_counter)]);if key_counter > countdisp(['LSB嵌⼊正常结束!共嵌⼊⽔印⽐特数: ',num2str(total_watermark_bits),' bits']);break;endend %外层fori(:,:,1) = i1;imwrite(i,'E:\new\LSB_watermarked.bmp');figure;subplot(1,2,1);imshow(picpath);title('原始图像');subplot(1,2,2);imshow(i);title('LSB嵌⼊⽔印后的图像');运⾏截图:2.提取⽔印.m脚本代码:clear all;clc;picpath = input('请输⼊待提取LSB⽔印图⽚绝对路径(加单引号):');watermark_bits = input('请输⼊提取的⽔印⽐特数:');i = imread(picpath); % 读取含有⽔印信息的彩⾊图像i1 = i(:,:,1);key = zeros(watermark_bits,1); % 创建⼀个watermark_bits⾏1列的全0矩阵,⽤于存放⽔印⽐特[row,col] = size(i1);key_counter = 1;round = 0;round_counter = 0;total_watermark_bits = 0;if mod(watermark_bits,row) == 0round = floor(watermark_bits/row);elseround = floor(watermark_bits/row) + 1;endfor ii = 1:1:roundfor jj = 1:1:rowkey(key_counter,1) = bitget(i1(jj,ii),1); % 提取图像矩阵的bit⽔印信息key_counter = key_counter + 1;total_watermark_bits = total_watermark_bits + 1;if key_counter > watermark_bitsbreak;endend %内层forround_counter = round_counter + 1;disp(['当前提取轮数: ',num2str(round_counter)]);if key_counter > watermark_bitsdisp(['LSB⽔印提取正常结束!共提取⽔印⽐特数:',num2str(total_watermark_bits),' bits']);break;endend %外层forfobject = fopen('E:\new\LSB_watermark.txt','w'); % 以只写模式打开⼀个名为mark_message.txt的⽂件,不存在则创建之fwrite(fobject,key,'bit1'); % 将key矩阵中的数作为bit写⼊⽂件句柄为fobject的⽂件fclose(fobject); % 关闭⽂件句柄所对应的⽂件运⾏后hidden.txt与LSB_watermark.txt⽂件⽔印内容LSB⽔印实验的要点1.该实验选取的是彩⾊RGB图像,是3维图像,因此要选RGB中的某⼀层进⾏⽔印嵌⼊,可以选第1,2或3层,分别对于R,G,B层,本实验选择R层及第⼀层i1 = i(:,:,1)2.还应对图像所能容纳⽔印⽐特最⼤数进⾏检查,以防⽔印信息太多导致嵌⼊失败.3.嵌⼊完成后,要将选取的RGB层赋给原3维矩阵对应层i(:,:,1) = i14.代码注意if及for与end配对,⼀个if或for配⼀个end上述脚本在matlab6.5能正确运⾏.。

基于傅里叶变换的数字图像水印matlab仿真

基于傅里叶变换的数字图像水印matlab仿真
【关键词】离散余弦变换; 数字图像; 水印嵌入算法; 水印提取算法; MATLAB 仿真 【作者简介】严学阳( 1994 ~ ) ,女,内江师范学院硕士研究生; 研究方向: 信号与信息处理
彭禹( 1995 ~ ) ,男,昆明理工大学硕士研究生; 研究方向: 电子与通信工程
在社会信息 化、数 字 化 不 断 向 前 进 步 的 时 代 背 景 下,多
图 2 水印提取算法流程图
二、基于 MATLAB 的数字图像水印仿真 ( 一) 数字水印嵌入和提取仿真。在 MATLAB 中的 M 文 件编辑窗口进行代码编写以及调试的过程中,由于使用了一 张彩色的图像作为原始载体图像,所以在使用 imread( ) 函数 读取完原始图像后利用 rgb2gray( ) 函数将彩色图像转换成如 图 3a 所示的灰度图像,再执行进行相应的算法。数字水印 嵌入强度为 k = 0. 2 时,程序运行完成后的仿真结果如图 3 所 示,其中图 3b 为欲加入的水印图像,图 3c 为嵌入水印后的图 像,图 3d 为提取出的水印图像。 ( 二) 测试分析。将数字水印嵌入强度 k = 0. 03,1. 2,1. 8 三种取值的水印嵌入强度分别嵌入到原始图像中,并与 k = 0. 2 时的图像作对比,具体仿真测试结果如图 4 所示。 在数字水印嵌入强度为 k = 0. 2 时,由图 3 可以看出通过 MATLAB 进行数字水印的仿真能够提取出清晰的水印图像。 所以在测试的时候通过改变嵌入强度的取值大小,对数字水
面。目前各行各业的保密工作中对数字水印技术都有所涉 及,但是数字水印技术还不是很成熟,还有很大的研发潜力。
因此充分了解其最新的研究现状和发展动态对数字水印的
研究具有重要的指导意义。本文在实现数字图像水印的嵌 入算法和提取算法上选择二值化灰度图像作为研究对象,借

利用Matlab进行数字水印与版权保护的方法总结

利用Matlab进行数字水印与版权保护的方法总结

利用Matlab进行数字水印与版权保护的方法总结引言:随着信息技术的快速发展,数字媒体的使用已经成为人们生活的一部分。

然而,数字媒体的盗版现象也日益严重,这对于版权保护提出了巨大挑战。

数字水印技术作为一种应对盗版问题的手段,逐渐受到了广大研究者的重视。

本文将总结利用Matlab进行数字水印与版权保护的各种方法,以期为相关研究提供一些参考。

一、数字水印技术的基本原理数字水印技术是通过在数字媒体中嵌入特定的信息,以实现版权保护的目的。

其基本原理是将数字水印信息与原始媒体进行融合,使得人眼无法察觉水印的存在,同时能够在未经授权的复制或者修改方面进行鉴别。

二、Matlab在数字水印技术中的应用1. 数字水印的嵌入与提取Matlab提供了一些常用的方法,如频域相关和空域相关等,可用于数字水印的嵌入与提取。

通过Matlab强大的图像处理功能,可以对原始媒体进行一系列的变换、嵌入水印信息,并能够在水印保护数据的传输过程中进行提取和验证。

2. 图像处理与特征提取Matlab具有灵活的图像处理函数和工具箱,可以用于数字媒体的图像预处理,改变图像的特征,增强数字水印的可靠性和抗攻击性。

例如,可以利用Matlab进行图像的降噪、平滑处理,提取图像的边缘信息以及重要特征点,以增加数字水印的鲁棒性。

3. 抗攻击与鲁棒性分析在数字水印技术中,抗攻击能力和鲁棒性是非常重要的指标。

Matlab提供了多种方法和函数,例如小波变换、图像压缩等,可以用于对数字水印的抗攻击性进行分析和评估。

通过Matlab的模拟仿真,可以评估数字水印在媒体攻击、失真压缩等情况下的抗干扰能力和鲁棒性。

4. 数字水印算法的改进与优化Matlab是一种非常适合进行算法实现和验证的工具。

通过Matlab平台,可以将新的数字水印算法快速实现并进行验证。

同时,Matlab提供了优化和调优的函数和工具箱,可以对数字水印算法进行优化,提高数字水印的嵌入效率和提取准确性。

基于MATLAB数字水印系统设计

基于MATLAB数字水印系统设计

• 4.按内容划分
• 按数字水印的内容可以将水印划分为有意义水印 和无意义水印。有意义水印是指水印本身也是某 个数字图像(如商标图像)或数字音频片段的编 码;无意义水印则只对应于一个序列号。有意义 水印的优势在于,如果由于受到攻击或其他原因 致使解码后的水印破损,人们仍然可以通过视觉 观察确认是否有水印。但对于无意义水印来说, 如果解码后的水印序列有若干码元错误,则只能 通过统计决策来确定信号中是否含有水印。
• 2)通用性:比较好水印算法大多都实用于多类媒 体格式与文件格式。通用性在特定程度上也代表 易用性。
• 3)计算效率高:在软件和硬件方面,水印算法也 应该能被有效的实现。需要特别注意的是,在分 布式网络上的多媒体数据监视方面,水印检测算 法的能够快速完成。
2.2数字水印技术的分类
• 数字水印的分类方法有很多种,不同的出发点导 致了不同的分类,他们之间既有联系又有区别, 本文主要介绍按水印的嵌入域划分。

II=II+1;

end

end

end
• end

%分块DCT反变换
• watermarked_image(y:y+blocksize-
1,x:x+blocksize-1)=idct2(dct_block);
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

从图片中嵌入和提取信息matlAB代码

从图片中嵌入和提取信息matlAB代码

嵌入代码:Picture=imread('yang.bmp'); %读入载体图像Double_Picture=Picture;Double_Picture=double(Double_Picture);%将图像转换为二进制wen.txt_id=fopen('wen.txt','r'); %读取秘密信息文件[msg,len]=fread(wen.txt_id,'ubit1');[m,n]=size(Double_Picture);p=1; %p 为秘密信息的位计数器for f2=1:nfor f1=1:mDouble_Picture(f1,f2)=Double_Picture(f1,f2)-mod(Double_Picture(f1,f2),2)+msg(p,1); %将秘密信息按位隐藏入连续的像素中if p<lenp=p+1;endendif p==lenbreak;endendDouble_Picture=uint8(Double_Picture);imwrite(Double_Picture,'zuihou.bmp'); %生成秘密信息subplot(121);imshow(Picture);title(' 未嵌入信息的图片');subplot(122);imshow(Double_Picture);title(' 嵌入信息的图片');提取代码:Picture=imread('zuihou.bmp'); %读入隐秘信息的图像Picture=double(Picture);[m,n]=size(Picture);frr=fopen('zuihou.txt','a');len=8; %设定隐秘信息长度p=1;for f2=1:nfor f1=1:mif bitand(Picture(f1,f2),1)==1%顺序提取图像相应像素LSB 的秘密信息fwrite(frr,1,'bit1');result(p,1)=1;elsefwrite(frr,0,'bit1');result(p,1)=0;endif p<len %判断秘密信息是否读完p=p+1; endendif p==len break; endend fclose(frr);。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字水印技术是一种用于保护数字信息安全和保护知识产权的重要技术手段。

Matlab作为一种强大的数学计算软件,具有丰富的数字信号处理和图像处理工具包,能够很好地支持数字水印的嵌入和提取。

本文将介绍如何使用Matlab进行数字水印的嵌入和提取,并给出相应的代码实现。

1. 数字水印嵌入
数字水印嵌入是将一段隐藏的信息嵌入到载体中,使得这段信息对于一般观察者来说是不可察觉的。

在Matlab中,可以使用一些图像处理工具进行数字水印的嵌入。

需要读入载体图像和待嵌入的数字水印。

载体图像可以使用Matlab 中的imread函数进行读取,得到一个包含图像像素信息的矩阵。

待嵌入的数字水印可以是一段文本、一幅小型图像或者一段音频信号。

接下来,可以选择合适的嵌入算法进行数字水印的嵌入。

常用的算法包括LSB替换算法、DCT变换算法以及扩频水印算法等。

这些算法都可以在Matlab中找到相应的实现。

将得到的嵌入水印后的图像保存起来,成为带有数字水印的图像。

可以使用Matlab中的imwrite函数将处理后的图像保存到本地。

2. 数字水印提取
数字水印提取是将嵌入在载体中的数字水印提取出来,还原成原始的水印信息。

在Matlab中,可以利用数字信号处理和图像处理工具进行数字水印的提取。

需要读入带有数字水印的载体图像。

同样可以使用Matlab中的imread函数进行读取。

接下来,根据数字水印嵌入时所采用的算法,使用相应的提取算法进行数字水印的提取。

提取算法通常与嵌入算法是对应的,可以在Matlab中找到相应的实现。

将提取得到的数字水印展示出来,可以是一段文本、一张图像或者一段音频信号。

在Matlab中可以利用文本处理工具、图像处理工具和音频处理工具展示提取得到的数字水印信息。

3. 示例代码
以下是一个简单的示例代码,演示了如何在Matlab中进行数字水印的嵌入和提取:
数字水印嵌入
image = imread('carrier_image.jpg'); 读入载体图像
watermark = imread('watermark_image.jpg'); 读入待嵌入的数字水印
watermarked_image = embed_watermark(image, watermark); 使用embed_watermark函数进行数字水印的嵌入
imwrite(watermarked_image, 'watermarked_image.jpg'); 保存带有数字水印的图像
数字水印提取
watermarked_image = imread('watermarked_image.jpg'); 读入带有数字水印的载体图像
extracted_watermark = extract_watermark(watermarked_image); 使用extract_watermark函数进行数字水印的提取
imshow(extracted_watermark); 展示提取得到的数字水印信息
以上代码中,embed_watermark和extract_watermark分别是数字水印的嵌入和提取函数。

这两个函数的具体实现可以根据具体的数字水印算法来编写。

总结:
本文介绍了如何使用Matlab进行数字水印的嵌入和提取,并给出了相应的代码示例。

数字水印技术在数字信息安全和知识产权保护中具
有重要意义,Matlab作为一种强大的数学计算软件,能够很好地支持数字水印的嵌入和提取。

希望本文对读者对数字水印技术和Matlab 的应用有所帮助。

相关文档
最新文档