【图像隐藏】基于DCT算法实现数字水印嵌入+检测+攻击matlab代码

图像隐藏】基于DCT算法实现数字⽔印嵌⼊+检测+攻击
母液
matlab代码
肖秀丹1 简介
随着计算机⽹络的迅猛发展,信息安全越来越受关注.信息隐藏技术是⼀种重要的信息安全技术,⽽数字图像⽔印算法⼜是信息隐藏技术研究的⼀个热点.⽔印加密和⽔印嵌⼊是⽔印算法的关键问题.本⽂提出⼀种新的混沌置乱⽔印加密算法:⾸先使⽤Arnold映射对⽔印置乱,然后和Logistic⽣成的混沌序列进⾏异或运算,即克服了Arnold的周期性带来的不安全性,⼜达到了抗剪切⽬的.在⽔印加密的基础上,本⽂⼜提出⼀种基于DCT的⽔印嵌⼊算法,该算法以⼆值图像为⽔印,⽔印嵌⼊前对⽔印进⾏信息扩⼤映射,增加了嵌⼊的灵活性,提⾼了提取准确性;嵌⼊中对宿主图像进⾏8×8分块,并结合⼈类视觉系统(HVS),根据各块的复杂度⾃适应嵌⼊,使⽔印的不可见性和稳健性达到很好平衡;嵌⼊时采取多重嵌⼊更增强了抵抗攻击能⼒.本⽂算法已得到编程实现.实验证明该算法在⽆攻击时提取⽔印的归⼀化相关系数(NC)为1,宿主图像在剪切1/2,JPEG压缩50%时提取⽔印仍可辨认,NC分别为0.77,0.73.
在图像隐写分析中,这⼏个特征是⽐较经典的 图像隐写分析中DCT特征与Markov特征展现出了极⼤a的潜⼒,⼩波变换的奇异值分解(Wavelet Singular Value Decomposition , WSVD)特征也有奇效,本⽂实现前⼈论⽂的特征提取编程代码。 先说说理论知识 1 扩展DCT统计特征提取 ⼤多数的隐密算法都
是对JPEG图像的DCT系数进⾏操作,以此来嵌⼊秘密信息。DCT系数统计特征,旨在捕捉DCT 系数的统计量的特征,以此来区分载体图像和隐密图像。 DCT系数统计算法由Fridrich【1】提出,其中包含了DCT系数直⽅图,共⽣矩阵,空域块间相关性等部分。⾸先⽤DCT系数替换相同位置的原始图像像素,使⽤dij(k) 来表⽰DCT系数矩阵,其中i,j=1, … ,8,k=1, …,nB。⽽dij(k)则代表的是在第k个8×8 DCT块中处于(i,j)位置的DCT系数,⽽DCT块⼀共有nB 块。为了减少计算量和特征维度,在计算特征之前需要进⾏预处理,将所有DCT系数值范围限定在[-5,5]之间,⼤于和⼩于该范围内的值全部变换为-5到+5之间。
其中,Ir和Ic表⽰图像DCT系数块的两种排列⽅式,分别是⾏扫描顺序和列扫描顺序。 接下来的两个特征Bα是从解压的JPEG图像中计算,也是⼀种块间相关性的特征:
在DCT系数统计的隐密分析中,Fridrich⾸次提出了⽤于隐密分析的“校准”概念和计算原理:特征计算函数F,训练或测试图像J1,将图像J1解压到空域并沿各个⽅向裁剪四个像素,然后使⽤同J1相同的量化表压缩得到的图像J2。f表⽰最终获取的特征,⽽最后的特征由
f=F(J1)-F(J2)计算得到。
采⽤如此计算⽅式的原理如下:裁剪之后的图像和原始图像内容上⼤体上完全⼀致,虽然裁剪之后的图像失去了原来的DCT分块,但是其统计特征应与原来相差不多。⽽这个过程会对嵌⼊的信息⼗分敏感,使裁剪前后的特征差别较⼤。经过实验证明,如此提取特征的⽅法⾮常有效果。
总结来说,DCT系数统计特征对DCT系数全局和局部进⾏了统计分析,并且捕获DCT系数的块间相关性和空域像素的相关性等特征。对于JPEG图像来说,所有隐密算法都是针对DCT系数进⾏修改,该算法确实是有⼀定的效果。实验中,该特征集展现了不错的分析效果,在0.2的嵌⼊率情况下可以达到平均95%的准确率,但是对MB算法的效果⼀般,尤其是MB2。
原始DCT统计特征已经有⼀定的检测效果,本⽂先对其进⾏扩展,加强特征的检测效果。对于全局直⽅图函数H,可以得到范围在[-5,+ 5]中的元素个数的差异,包括全局直⽅图和局部直⽅图,局部直⽅图选择的位置为{(1, 2),(2, 1),(3, 1),(2, 2),(1, 3)}。 因此,直⽅图特征是:
如此的DCT扩展特征共有193维,其特征组成见下表。
2 源代码
clc;
集成电路版图设计clear;
msgfid=fopen('','r');%%打开秘密⽂件,读⼊秘密信息
[msg,count]=fread(msgfid);
count=count*8;
alpha=0.02;
fclose(msgfid);
msg=str2bit(msg)';
[len col]=size(msg);
io=imread('lena.bmp');%读取载体图像
io=double(io)/255;
output=io;
i1=io(:,:,1);%取图像的⼀层来隐藏打地鼠游戏机
T=dctmtx(8);%对图像进⾏分块
DCTrgb=blkproc(i1,[8 8],'P1*x*P2',T,T');%对图像分块进⾏DCT变换
[row,col]=size(DCTrgb);
row=floor(row/8);
col=floor(col/8);
% 顺序信息嵌⼊
temp=0;
for i=1:count;
if msg(i,1)==0
if DCTrgb(i+4,i+1)<DCTrgb(i+3,i+2) %选择(5,2)和(4,3)这⼀对系数
temp=DCTrgb(i+4,i+1);
DCTrgb(i+4,i+1)=DCTrgb(i+3,i+2);
DCTrgb(i+3,i+2)=temp;
end
else
if  DCTrgb(i+4,i+1)>DCTrgb(i+3,i+2)
temp=DCTrgb(i+4,i+1);
聚酰亚胺纤维DCTrgb(i+4,i+1)=DCTrgb(i+3,i+2);
DCTrgb(i+3,i+2)=temp;
end
end
梨花护肤品
if DCTrgb(i+4,i+1)<DCTrgb(i+3,i+2)
DCTrgb(i+4,i+1)=DCTrgb(i+4,i+1)-alpha;%将原本⼩的系数调整更⼩,使得系数差别变⼤  else
DCTrgb(i+3,i+2)=DCTrgb(i+3,i+2)-alpha;
end
end
3 运⾏结果
4 参考⽂献
[1]李⽯峰. 基于DCT数字⽔印算法的研究与应⽤[D]. 东北⼤学, 2008.部分理论引⽤⽹络⽂献,若有侵权联系博主删除。
5 MATLAB代码与数据下载地址
见博客主页

本文发布于:2024-09-22 06:53:17,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/212321.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:特征   图像   系数   算法
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议