ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

基于DCT系数关系的图像水印算法

2020-12-24 10:59:01  阅读:248  来源: 互联网

标签:系数 变换 信息 算法 水印 图像 DCT


1、DCT域的图像水印嵌入与提取

在信号的频域(变换域)中隐藏信息要比在时域中嵌入信息具有更好的鲁棒性。一副图像经过时域到频域的变换后,可将待隐藏信息藏入图像的的显著区域,这种方法比LSB以及其他一些时域水印算法更具抗攻击能力,而且还保持了对人类感官的不可察觉性。常用的变换域方法有离散余弦变换(DCT)、离散小波变换(DWT)和离散傅立叶变换(DFT)等 。介绍一种提取秘密信息的时候不需要原始图像的盲水印法,算法的思想是利用载体中两个特定DCT系数的相对大小来表示隐藏的信息。

2、原理分析

载体图像分为8×8分块,进行二维DCT变换,分别选择其中的两个位置,比如用(u1,v1)和(u2,v2)代表所选定的两个系数的坐标。如果Bi (u 1, v1)<Bi (u 2 , v2) ,代表隐藏1,如果相反,则交换两系数。如果Bi (u 1, v1)>Bi (u 2 , v2) ,代表隐藏0,如果相反,则交换两系数。提取的时候接收者对包含水印的图像文件进行二维DCT变换,比较每一块中约定位置的DCT系数值,根据其相对大小,得到隐藏信息的比特串,从而恢复出秘密信息。

3、注意事项

但是在使用上述算法的过程中,注意到如果有一对系数大小相差非常少,往往难以保证携带图像在保存和传输的过程中以及提取秘密信息的过程中不发生变化。因此在实际的设计过程中,一般都是引入一个Alpha变量对系数的差值进行控制,将两个系数的差别放大,可以保证提取秘密信息的正确性。

4、嵌入水印信息

源代码 dcthiding.m如下:
在这里插入图片描述

5、信息提取

源代码 dctextract.m 如下:
在这里插入图片描述

6、结果分析

将一串数字当作秘密信息进行DCT 域的图像水印嵌入与提取,并按照步骤给出实验中间过程的结果和最终的结果。
在这里插入图片描述
需要用到三个函数str2bit、bit2str、tostr,需要建立三个函数文件,要保证这三个函数文件和上面两个脚本文件在一个文件夹里面。执行dcthiding.m这个脚本文件,会生成一个watermarkedlena.bmp,这个文件就是加密后的文件,执行完的结果如下图:
在这里插入图片描述
执行程序,生成隐藏文件watermarkedlady.bmp,与原文件比较可以发现其中一些地方发生了变化:
在这里插入图片描述

标签:系数,变换,信息,算法,水印,图像,DCT
来源: https://blog.csdn.net/weixin_39035140/article/details/111609947

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有