DEW是采用改变图像区域能量关系来实现特定的水印嵌入的方法,方法流程如下:

1. 对于一个含有n个8*8像素块的区域,将其平均分为两部分。

2. 对于每一部分的每一个8*8块,做离散余弦变换。

3. 对于每一部分求该部分的能量(能量求法在下面介绍),并得到能量差Ea - Eb。

4. 若能量差为正,则表示嵌入1。否则表示嵌入0。

通过对于DCT变换后的结果进行处理,可由此改变能量差从而控制对于特定比特的嵌入。

能量差计算方法:

在上图右下角圆圈中,是8*8的DCT变换后的结果。该点的能量为其Zigzag序列后方的所有值的平方和。

公式为:

若Zigzag后的数列为A,长度为n。则能量

给一个实际的例子:

怎样调整能量

首先需要设置一个阀值,在上图中就是D,D = 500。

如果要A的能量大于B(嵌入1),则要找到最大的i,使得EA(i) > D且EB(i)>D。上图中i = 35。

然后,将B的Zigzag序列的第i(图中为35)项后面的所有项清零。

同理,如果要嵌入0,则清除A后方的所有项。

在处理结束后,还需要还原为原图,做zigzag和dct的逆向操作。

下面给出其MATLAB实现代码:

%a:原图,灰度图或彩图的一维
%w:水印,此处为二值图像,如为彩图则需自行处理为比特流
%D:阀值
function pic = MarkInsert(a, w, D)
sw = size(w);
s = sw(1) * sw(2);
sa = size(a);
a = reshape(a,8,8,[]);
w = reshape(w,1,[]);
for i=1:sa1 = zigzag(dct2(a(:,:,2*i -1)));a2 = zigzag(dct2(a(:,:,2*i)));%wipe函数用以将指定Zigzag序列后端置零[a1, a2] = wipe(a1, a2, D, w(:,i));a(:,:,2*i -1) = idct2(izigzag(a1));a(:,:,2*i) = idct2(izigzag(a2));
end
pic = reshape(a, sa);

其中wipe函数的实现方法:

function [a1, a2] = wipe(a1, a2, D, n)
a3 = a1.*a1;
a4 = a2.*a2;
for index = 64:-1:1if(sum(a3(:,index:64)) > D && sum(a4(:,index:64)) > D)break;end
end
if n == 0a1(index:64) = 0;
elseif n == 1a2(index:64) = 0;
end






差分能量水印算法DEW相关推荐

  1. 一种结合混沌密码理论的彩色图象水印算法

    本文是本人毕业时发表的论文. 原文地址:http://www.ahcit.com/lanmuyd.asp?id=1972  摘  要  文章提出一种集混沌加密技术,小波变换,扩频技术为一体的彩色图像水 ...

  2. 【论文摘要】基于多数投票模式和超混沌加密的彩色图像鲁棒安全零水印算法

    Robust and secure zero-watermarking algorithm for color images based on majority voting pattern and ...

  3. 基于DCT离散余弦变换的自适应水印算法的设计

    文章目录 前言 一.目的和需求分析 1.1项目设计目的 1.2项目需求分析 二.图像预处理 2.1 图像预处理的作用 2.2 Logistic混沌映射置乱 2.2 细胞自动机处理 均值滤波平滑处理 三 ...

  4. 奇异值分解 水印 matlab,基于奇异值分解的数字图像水印算法研究毕业论文

    内容介绍 原文档由会员 何倩倩 发布 基于奇异值分解的数字图像水印算法研究毕业论文 本文共计54页,25261字: 摘 要 数字水印是将身份确认信息或保密信息镶嵌于图像中的一种技术,可靠的水印可为信息 ...

  5. DPA——差分能量分析(Differential Power Analysis)

    1 能量分析技术 1.1 能量分析概述 密码设备在进行加解密运算时,其内部结点电平高低变换完成运算,电平变换过程中电容不断地充放电进而从电源源源不断的获取电流.由于内部电阻的存在,此时设备不断地产生能 ...

  6. HDU3440(差分约束+SPFA算法)

    题意:两栋房子之间的最大距离为D,也就是A-B<=D,现在求出最矮和最高房子之间的最大距离 思路:差分约束+SPFA算法: 当问题可以转化为形如一组 xi‑x'i<=yi 或一组 xi‑x ...

  7. 一种基于加密域的数字图像水印算法的设计与实现(附Matlab源码)

    一种基于加密域的数字图像水印算法的设计与实现 项目介绍 毕设项目 题目:一种基于加密域的数字图像水印算法的设计与实现 随着数字媒体技术的发展,数字媒体版权的保护得到了越来越多人的重视,数字水印技术作为 ...

  8. matlab彩色图添加水印,基于离散小波变换的彩色图像水印算法及其MATLAB实现

    随着数字多媒体技术的迅速发展,数字(音频.视频)产品的传播日益简单化(利用Internet),其复制后质量几乎不受影响,这就使得版权纠纷问题急剧上升.基于这个原因,人们开始寻找一种能更好地控制非法使用 ...

  9. 直方图移位可逆水印MATLAB代码,基于图像插值和直方图平移的可逆水印算法

    第 33卷第 4期 2016年 4月 计 算 机 应 用 研 究 Application Research of Computers Vo1.33 No.4 Apr.2016 基于图像插值和直方图平移 ...

最新文章

  1. 老年痴呆 数字化_设计老年人愉快数字体验的5条原则
  2. Mongodb安装搭建Replica Set+Sharding集群
  3. 从一则笑话里分析项目需求的缺陷
  4. Spicy Spring:动态创建自己的BeanDefinition
  5. C语言、指针的指针和野指针的问题
  6. thymeltesys-基于Spring Boot Oauth2的扫码登录框架
  7. pure-ftpd 配置
  8. directx repair_DirectX修复工具(修复程序缺少.dll )一款系统级工具软件
  9. 竞品分析:网易云音乐与QQ音乐
  10. 淘宝爬虫:看看房地产拍卖行情怎么样?附可视化分析
  11. php 跨站脚本攻击漏洞,PHP跨站脚本攻击(XSS)漏洞修复思路(二)
  12. 主流蓝牙芯片对比 Dialog- ST -TI - Nordic
  13. java 打开word(docx)替换内容,并插入图片(盖章)
  14. 基于Qt的ui图形化界面进行的界面设计
  15. 用java画爱心图_用java输出一个心型图案
  16. 数据可视化之excel和finebi报表实现对比
  17. 邻接矩阵/图/DFS/BFS
  18. Android精通教程V
  19. Qt实现的一些小软件
  20. 4位递增计数器的设计(详解并附有代码)

热门文章

  1. 人机混合智能的哲学思考
  2. linux用户目录设置权限设置,为linux目录设置多个用户权限
  3. 配置nginx+mongrel的rails部署环境
  4. 基于Team Foundation Server 2010 Scrum 1.0与持续集成的最佳实践
  5. window -Ubuntu 双系统切换
  6. JavaScript基础知识点之浏览器交互
  7. 杰理之关于 SPI 主机配置参数的几个说明【篇】
  8. 安卓开发之设计微信界面
  9. 三相光伏10KW并网逆变器。 全套原理图/PcB,源代码,均无实物
  10. jdbc(2)——之Class.forName(com.mysql.cj.jdbc.Driver)理解