开篇:润墨网以专业的文秘视角,为您筛选了一篇数字水印技术研究及其matlab仿真范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:随着网络技术和数字技术的发展,数字水印在版权保护、数据鉴别、数字产品认证领域有着广泛的应用前景。本文介绍了数字水印的基本原理,并选取了离散余弦变换(DCT)算法在matlab环境下实现了数字水印的嵌入和提取。
关键词:水印;DCT算法matlab;仿真
1 引言
数字技术的迅速发展以及互联网的普及给人们的工作和生活带来了极大的便利,但是也正是由于数字化多媒体信息本身具有的易于加工、复制简单的优点,使其极其容易被非法拷贝或复制,从而导致数字产品的版权、完整性得不到保证。以将特定的数字标志隐藏在数字作品中为特征的数字水印技术在此方面发挥了巨大的作用。
2 数字水印的基本原理
从图像处理的角度来看,嵌入水印信号可以视为在强背景下叠加一个弱信号,只要叠加的水印信号强度低于人类视觉模型HVS(Human Vision System)的对比度门限,HVS就无法感到信号的存在。从数字通信的角度看,水印嵌入可理解为在一个宽带信道(载体图像)上用扩频技术传输一个窄带信号(水印信号)。尽管水印信号具有一定的能量,但分布到信道中任一频率上的能量是难以检测到的。水印的检测就相当于是一个有噪声信道中弱信号的检测问题。
3 基于MATLAB的仿真算法
(1)嵌入算法
①将512×512像素的宿主图像按8×8像素进行分块,再对每一个分块进行DCT变换;
②将64×64像素的水印图像先转换为8位灰度图像(像素元素取值为0~255),再把图像归一化并取整;
③生成两个一行八列的矩阵作为密钥;
④设定一个合适的尺度因子;
⑤按公式W'=W+α×K进行加性叠加,嵌入原则是当水印图像的图像元素为0时,用K1矩阵加密。为1时用K2加密;
⑥对新的DCT系数矩阵进行IDCT变换,得到嵌入水印的图像。
(2)提取算法
①对含水印的图像先进行8×8像素的分块,并进行DCT变换:
②从每一个分块图像中把我们已知的嵌入位置中的DCT分量的值提取出来。将得到的8个数值分别与密钥矩阵进行相关计算,与K1的相关度高就用K1解码,即像素元素的值为0,同理K2解码的值为1;
⑧得到的矩阵转换成的图即为提取出的水印图。
4 仿真结果
为了让水印图像具有良好的使用价值我们首先要确定一个合适的尺度因子a因子。a决定了水印的嵌入深度,a越大嵌入的水印越深,水印的鲁棒性越好,可见性越差,即水印图像有明显的失真,产生块效应,也就没有什么使用价值了;如果嵌入强度因子a过小,虽然此时的嵌有水印的图像和原始公开图像相似度非常高,但水印的鲁棒性很差。
图4.1是本次仿真中所用到的水印图像与载体图像。
当a=50时嵌入水印的图像与提取的水印图像如下图所示:
由上面的仿真结果图可以看出算法嵌入的含水印图像具有较高的不可感知性,几乎看不出与载体图像的差别:而基于这种算法提取的水印图像非常清楚。在未收到任何干扰的情况下与水印图像没有差别。