clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
%% 基于DWT-HD-SVD混合技术的数字图像水印方法
%% Import image
cover_image=imread('lena512.bmp');
watermark_logo=imread('cameraman.tif');
%% Plot cover image and watermark image
figure
subplot(1,2,1);
imshow(cover_image);
title('Cover image: 512 x 512');
subplot(1,2,2);
imshow(watermark_logo);
title('Watermark image: 256 x 256');
%% Example: watermark embedding and exraction alpha=0.1 Attack: Sharpening
method = 'DWT-HD-SVD'; % Apply 'DWT-HD-SVD Method
alpha = 0.1;
attack = 'Motion blur'; % You can choose other attacks
param = 0.5; % attack parameter
[watermarked_image, extracted_watermark] = watermark(cover_image,...
watermark_logo,method,alpha,attack,param);
% Plot results
figure;
subplot(2, 2, 1);
imshow(cover_image);
xlabel('a) Cover image');
subplot(2, 2, 2);
imshow(watermarked_image);
xlabel('b) Watermarked image');
subplot(2, 2, 3);
imshow(watermark_logo);
xlabel('c) Watermark logo');
subplot(2, 2, 4);
imshow(extracted_watermark);
xlabel('d) Extracted watermark');
sgtitle(['DWT-HD-SVD method \alpha = '+string(alpha) attack]);
%% NC vs alpha DWT-HD-SVD figure 5
% Plot normalized correlation for different alpha
method = 'DWT-HD-SVD';
alpha =0.005:0.005:0.2;
attacks = {'No Attack'; 'Gaussian low-pass filter'; 'Median';...
'Gaussian noise'; 'Salt and pepper noise';'Speckle noise';...
'JPEG compression'; 'JPEG2000 compression'; 'Sharpening attack';...
'Histogram equalization'; 'Average filter'; 'Motion blur'};
% Attack papameters
params = [0; 3; 3; 0.001; 0; 0; 50; 12; 0.8; 0; 0; 0];
NC = NC_alpha(cover_image,watermark_logo,method,alpha,attacks,params);
%% plot NC vs alpha figure 5
NC_plot(alpha,NC,attacks);
%% PSNR vs alpha DWT-HD-SVD
method = 'DWT-HD-SVD';
alpha =0.005:0.005:0.2;
attacks = {'No Attack'; 'Gaussian low-pass filter'; 'Median'; 'Gaussian noise';...
'Salt and pepper noise';'Speckle noise'; 'JPEG compression';...
'JPEG2000 compression'; 'Sharpening attack'; 'Histogram equalization';...
'Average filter'; 'Motion blur'};
params = [0; 3; 3; 0.001; 0; 0; 50; 12; 0.8; 0; 0; 0];
PSNR = PSNR_alpha(cover_image,watermark_logo,method,alpha,attacks,params);
%% plot PSNR vs alpha
PSNR_plot(alpha,PSNR,attacks);
%% SSIM vs alpha DWT-HD-SVD figure 7 paper (see README)
method = 'DWT-HD-SVD';
alpha =0.005:0.005:0.2;
attacks = {'No Attack'; 'Gaussian low-pass filter'; 'Median'; 'Gaussian noise';...
'Salt and pepper noise';'Speckle noise'; 'JPEG compression';...
'JPEG2000 compression'; 'Sharpening attack'; 'Histogram equalization';...
'Average filter'; 'Motion blur'};
params = [0; 3; 3; 0.001; 0; 0; 50; 12; 0.8; 0; 0; 0];
SSIM = SSIM_alpha(cover_image,watermark_logo,method,alpha,attacks,params);
%% plot SSIM vs alpha
SSIM_plot(alpha,SSIM,attacks);
%% FIGURE 8. Invisibility performance: Watermarked images and corresponding extracted
% watermarks with various sizes and their corresponding PSNRs, SSIMs and NCs.
method = 'DWT-HD-SVD';
alpha =0.05;
attack = 'No Attack';
param = 0;
figure
for i=1:3
watermark_logoi = imresize(watermark_logo,2^(-i+1));
[watermarked_image, extracted_watermark] = watermark(cover_image,watermark_logoi,method,alpha,attack,param);
PSNR = psnr(watermarked_image, cover_image);
SSIM = ssim(watermarked_image, cover_image);
NC = nc(watermark_logoi,extracted_watermark);
subplot(2,3,i);
imshow(watermarked_image);
title(['watermarked image';'watermark size '+string(length(watermark_logoi))+'x'+string(length(watermark_logoi))]);
xlabel(['PSNR='+string(PSNR);'SSIM='+string(SSIM)]);
subplot(2,3,i+3);
imshow(extracted_watermark);
title('extracted watermark');
xlabel('NC='+string(NC));
end
sgtitle('DWT-HD-SVD: Invisibility performance: watermarks with various sizes; alpha='+string(alpha)+'; No Attack');
%% plot watermarked image for different attacks and watermark sizes
method = 'DWT-HD-SVD';
alpha =0.05;
attacks = {'No Attack'; 'Gaussian low-pass filter'; 'Median'; 'Gaussian noise';...
'Salt and pepper noise';'Speckle noise'; 'JPEG compression';...
'JPEG2000 compression'; 'Sharpening attack'; 'Histogram equalization';...
'Average filter'; 'Motion blur'};
params = [0; 3; 3; 0.001; 0; 0; 50; 12; 0.8; 0; 0; 0];
for i=3:-1:1
watermark_logoi = imresize(watermark_logo,2^(1-i));
figure
for j=1:length(attacks)
attack = string(attacks(j));
param = params(j);
[watermarked_image, extracted_watermark] = watermark(cover_image,watermark_logoi,method,alpha,attack,param);
PSNR = psnr(watermarked_image, cover_image);
SSIM = ssim(watermarked_image, cover_image);
subplot(3,4,j);
imshow(watermarked_image);
xlabel(['PSNR='+string(PSNR);'SSIM='+string(SSIM)]);
title(attack);
end
sgtitle(['DWT-HD-SVD: Attacked watermarked image; Size = '+string(length(watermark_logoi))+'x'+string(length(watermark_logoi))+'; \alpha = '+string(alpha)]);
end
%% FIGURE 10. Extracted watermarks from the attacked watermarked images
% Evaluate robustness performance
method = 'DWT-HD-SVD';
alpha =0.05;
attacks = {'No Attack'; 'Gaussian low-pass filter'; 'Median'; 'Gaussian noise';...
'Salt and pepper noise';'Speckle noise'; 'JPEG compression';...
'JPEG2000 compression'; 'Sharpening attack'; 'Histogram equalization';...
'Average filter'; 'Motion blur'};
params = [0; 3; 3; 0.001; 0; 0; 50; 12; 0.8; 0; 0; 0];
for i=3:-1:1
watermark_logoi = imresize(watermark_logo,2^(1-i));
figure
for j=1:length(attacks)
attack = string(attacks(j));
param = params(j);
[watermarked_image, extracted_watermark] = watermark(cover_image,watermark_logoi,method,alpha,attack,param);
NC = nc(watermark_logoi,extracted_watermark);
subplot(3,4,j);
imshow(extracted_watermark);
xlabel([attack 'NC='+string(NC)]);
end
sgtitle(['DWT-HD-SVD: Extracted watermarks image from the attacked watermarked images; Size = '+string(length(watermark_logoi))+'x'+string(length(watermark_logoi))+'; \alpha = '+string(alpha)]);
end
%% FIGURE 11. NC values under different parameters suffering various attacks
watermark_logo1 = watermark_logo;
watermark_logo2 = imresize(watermark_logo,0.5);
watermark_logo3 = imresize(watermark_logo,0.25);
method = 'DWT-HD-SVD';
alpha =0.1;
attacks = {'JPEG compression';'JPEG2000 compression';'Gaussian low-pass filter';...
'Median';'Gaussian noise';'Sharpening attack'};
figure
for j = 1:length(attacks)
attack = string(attacks(j));
params = 0;
switch attack
case 'JPEG compression'
params = 10:10:90;
y = [0.98 1];
x = [0 100];
ticks = string(params);
label = 'Quality Factor (QF)';
case 'JPEG2000 compression'
params = 4:4:36;
y = [0.98 1];
ticks = string(params);
label = 'Compression Ratio (CR)';
case 'Gaussian low-pass filter'
params = 0.5:0.5:4.5;
y = [0.9 1];
ticks = string(params);
label = 'sigma';
case 'Median'
params = 3:7;
y = [0.86 1];
ticks = {'3x3','4x4','5x5','6x6','7x7'};
label = 'Window size';
case 'Gaussian noise'
params = 0.001:0.002:0.009;
y = [0.88 1];
ticks = string(params);
label = 'Variance';
case 'Sharpening attack'
params = 0.1:0.1:0.9;
y = [0.96 1];
ticks = string(params);
label = 'Strength (1-Threshold)';
end
NC1 = 0;
NC2 = 0;
NC3 = 0;
for i = 1:length(params)
[watermarked_image1, extracted_watermark1] = watermark(cover_image,watermark_logo1,method,alpha,attack,params(i));
[watermarked_image2, extracted_watermark2] = watermark(cover_image,watermark_logo2,method,alpha,attack,params(i));
[watermarked_image3, extracted_watermark3] = watermark(cover_image,wate
没有合适的资源?快使用搜索试试~ 我知道了~
matlab-基于DWT-HD-SVD混合技术的数字图像水印方法测试了jpeg压缩,jpeg2000压缩,高斯滤波,中值滤波,高
共30个文件
m:27个
jpg:1个
j2k:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 121 浏览量
2021-09-29
23:48:26
上传
评论 1
收藏 265KB RAR 举报
温馨提示
matlab_基于DWT-HD-SVD混合技术的数字图像水印方法测试了jpeg压缩,jpeg2000压缩,高斯滤波,中值滤波,高斯噪声,图像变形等attack测试_源码
资源推荐
资源详情
资源评论
收起资源包目录
matlab_基于DWT-HD-SVD混合技术的数字图像水印方法测试了jpeg压缩,jpeg2000压缩,高斯滤波,中值滤波,高斯噪声,图像变形等attack测试_源码.rar (30个子文件)
matlab_基于DWT-HD-SVD混合技术的数字图像水印方法测试了jpeg压缩,jpeg2000压缩,高斯滤波,中值滤波,高斯噪声,图像变形等attack测试_源码
1基于DWT-HD-SVD混合技术的数字图像水印方法测试了jpeg压缩,jpeg2000压缩,高斯滤波,中值滤波,高斯噪声,图像变形等attack测试
jpeg2000ImageAttacked.j2k 7KB
jpegImageAttacked.jpg 58KB
Runme.m 8KB
lena512.bmp 257KB
func
averageFilter.m 209B
rescale4Attack.m 162B
NC_plot.m 542B
dwt_hd_svd.m 3KB
rotatAttack.m 155B
motionAttack.m 200B
nc.m 378B
medianAttack.m 155B
GlowpassFilter.m 231B
SSIM_alpha.m 590B
PSNR_alpha.m 553B
noiseSpeckle.m 170B
SSIM_plot.m 434B
histAttack.m 143B
PSNR_plot.m 439B
noiseSaltPepper.m 191B
Attacks.m 2KB
noiseGauss.m 170B
sharpenAttack.m 180B
watermark.m 1KB
jp2Attack.m 267B
rescaleAttack.m 169B
NC_alpha.m 487B
dwt_svd.m 1KB
cropAttack.m 125B
jpegAttack.m 239B
共 30 条
- 1
资源评论
- m0_744226362024-01-09发现一个宝藏资源,赶紧冲冲冲!支持大佬~
mYlEaVeiSmVp
- 粉丝: 1883
- 资源: 19万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功