• 大小: 64KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: Matlab
  • 标签: 小波  SVD  攻击  matlab  

资源简介

别人的小波SVD水印加密,乘性水印算法,有攻击内容代码,增加了代码说明文件,适合初学者。经修改测试完全可运行。

资源截图

代码片段和文件信息

%% Anti-Rotation Plus
% Kyoshiyou 2012-05-28
clc; clear all; close all;
%% Load Image
I = im2double( imread(‘Lena.BMP‘) ); [ M N ] = size( I );
%% Load Watermark
w = im2double( imread(‘W.bmp‘) ); [ Mw Nw ] = size( w );
w=w(::1);
%% Start Time 1
start_time1 = cputime;
%% embed Watermark
%%R1 = I(::1);
%%G1 = I(::2);
%%B1 = I(::3);
k = 0.5;
[ CA_2 H_2 V_2 D_2 ] = dwt2( I ‘haar‘ );
[ CA H V D ] = dwt2( CA_2 ‘haar‘ );
[ Uw Sw Vw] = svd( w );
[ Uc Sc Vc] = svd( CA );
Sc1 = Sc + k * Sw;
Ccw = Uc * Sc1 * Vc‘;
Ccw_1 = idwt2( Ccw H V D ‘haar‘ );
I_w = idwt2( Ccw_1 H_2 V_2 D_2 ‘haar‘ );
%%I_w = cat( 3 R_w G1 B1);
%% End Time 1
elapsed_time1 = cputime - start_time1;
ksy=0;
%% Attack Tpye
disp(‘攻击类型:1.旋转攻击  2.JP2压缩   3.JPEG压缩  4.均值滤波‘);
disp(‘     5.圆形均值  6.高斯低通  7.移动模糊  8.对比增强‘);
disp(‘     9.中值滤波  10.直方图均衡 11.对比度UP 12.高斯噪声‘);
disp(‘     13.椒盐噪声 14.斑纹噪声  15.泊松噪声 16.缩放攻击‘);
attack = input(‘请输入攻击类型:‘);
switch attack
    case 1     % 旋转攻击
        angle = input(‘请输入旋转角度:‘);
        if angle > 0
            I_wa = imrotate( I_w angle ‘crop‘ ‘nearest‘ );
            name = strcat( ‘图像旋转‘ num2str(angle) ‘°_‘ ‘.BMP‘);
            imwrite( I_wa name ‘BMP‘ );
            type = ‘图像旋转‘;
            flag = 1; ksy = 1;
        else
            disp(‘旋转失败‘);
            I_wa = I_w;
            type = ‘旋转失败‘;
            flag = 0;            
        end
    case 2     % JP2压缩
        cr = input(‘请输入压缩比例(0-100):‘);
        if cr > 0 && cr <= 100
            name = strcat( ‘JP2压缩‘ num2str(cr) ‘%_‘ ‘.BMP‘);
            imwrite( I_w name ‘JP2‘ ‘CompressionRatio‘ cr );
            I_wa = im2double( imread( name ) );
            type = ‘JP2压缩‘;
            flag = 1;
        else
            disp(‘压缩失败‘);
            I_wa = I_w;
            type = ‘压缩失败‘;
            flag = 0;
        end
    case 3     % JPEG压缩
        q = input(‘请输入质量因子(0-100):‘);
        if q > 0 && q <= 100
            name = strcat( ‘JPEG压缩‘ num2str(q) ‘_‘ ‘.BMP‘);
            imwrite( I_w name ‘JPG‘ ‘quality‘ q );
            I_wa = im2double( imread( name ) );
            type = ‘JPEG压缩‘;
            flag = 1;
        else
            disp(‘压缩失败‘);
            I_wa = I_w;
            type = ‘压缩失败‘;
            flag = 0;
        end
    case 4     % 均值滤波
        h = fspecial( ‘average‘ 3 );
        I_wa = filter2( h I_w );
        imwrite( I_wa ‘均值滤波_.BMP‘ ‘BMP‘ );
        type = ‘均值滤波‘;
        flag = 1;
    case 5     % 圆形均值
        h = fspecial( ‘disk‘ 3 );
        I_wa = filter2( h I_w );
        imwrite( I_wa ‘圆形均值_.BMP‘ ‘BMP‘ );
        type = ‘圆形均值‘;
        flag = 1;
    case 6     % 高斯低通
        h = fspecial( ‘gaussian‘ 3 0.5 );
        I_wa = filter2( h I_w );
        imwrite( I_wa ‘高斯低通_.BMP‘ ‘BMP‘ );
        type = ‘高斯低通‘;
        flag = 1;
    case 7     % 移动模糊
        h = fspecial( ‘motion‘ 9 0 );
        I_wa = filter2( 

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

     文件       9168  2018-03-17 09:58  DWTattack.m

     文件      66614  1996-10-24 16:44  Lena.bmp

     文件      12342  2018-02-03 15:15  w.bmp

     文件      14926  2018-03-17 10:19  程序运行说明.docx

     文件       9169  2018-03-17 09:41  DWT_SVD_attack.m

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

               112219                    5


评论

共有 条评论