资源简介

利用小波变换,在HSV域图像的V或S通道的二次小波分解的LH子带加数字水印并进行还原和攻击,给出了几种常见攻击方式的水印效果图

资源截图

代码片段和文件信息

%%水印攻击实验
function dwtwatermarkattack(actionIwWntimesrngseed)
%action;水印攻击类型
%Iw:嵌入水印的图像
%W:原始水印,用来计算相关性
%ntimesrngseed:水印算法秘钥
%模拟水印攻击
switch lower(action)
    case ‘filter‘
        Ia=imfilter(Iwones(3)/9);
    case ‘gaussian noise‘
        Ia=imnoise(Iw‘gaussian‘);
    case ‘resize‘
        Ia=imresize(Iw0.5);
        Ia=imresize(Ia2);
    case ‘noise‘
        Ia=imnoise(Iw‘salt & pepper‘0.01);
    case ‘crop‘
        Ia=Iw;
        Ia(50:40050:400:)=randn();
    case ‘rotate‘
        Ia=imrotate(Iw45‘nearest‘‘crop‘);
        Ia=imrotate(Ia-45‘nearest‘‘crop‘);
    case ‘motion filter‘  %运动模糊
        PSF = fspecial(‘motion‘2015);
        Ia = imfilter(IwPSF‘conv‘‘circular‘);
    case ‘gaussian filter‘ %高斯模糊       
        G = fspecial(‘gaussian‘ [5 5] 2);
        Ia = imfilter(IwG‘same‘);
end
%从遭受的攻击的图像中提取水印
Wg = getdwtwatermark(IaWntimesrngseed);
nc=sum(Wg(:).*W(:))/sqrt(sum(Wg(:).^2))/sqrt(sum(W(:).^2));
%显示攻击前后的对比结果
figure(‘Name‘[‘数字水印 ‘upper(action)‘ 攻击试验‘]‘Position‘[287108943557]);
subplot(221)imshow(Iw)title(‘嵌入水印图像‘);
subplot(222)imshow(Ia)title([‘遭受 ‘upper(action) ‘ 攻击‘]);
subplot(223)imshow(W)title(‘原始水印图像‘);
subplot(224)imshow(Wg)title([‘提取水印,NC=‘num2str(nc)]);
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     918344  2018-03-21 16:59  HSVLH\1.png

     文件       1388  2018-07-17 16:51  HSVLH\dwtwatermarkattack.m

     文件        684  2018-07-17 17:13  HSVLH\getdwtwatermark.m

     文件       1085  2018-07-17 16:58  HSVLH\main.m

     文件         77  2019-03-21 09:19  HSVLH\Readme.txt

     文件       1406  2018-07-17 17:12  HSVLH\setdwtwatermark.m

     文件       6198  2018-03-26 15:51  HSVLH\水印01.png

     目录          0  2019-03-21 09:18  HSVLH

----------- ---------  ---------- -----  ----

               929182                    8


评论

共有 条评论