📄 dwt.m
字号:
clc; clear
CoverImage = imread('E:\Phd\My Paper\Second paper -- Experiment\Experiment\Cover and Secret Image\lena.bmp');
cv_d = double(CoverImage);
WatermarkImage = imread('E:\Phd\My Paper\Second paper -- Experiment\Experiment\Cover and Secret Image\hat.bmp');
wm_d = double(WatermarkImage);
[lena_ca, lena_ch, lena_cv, lena_cd] = dwt2(cv_d, 'haar');
[hat_ca, hat_ch, hat_cv, hat_cd] = dwt2(wm_d, 'haar');
alpha = 0.2;
wm_ca = lena_ca + alpha*hat_ca;
wm_ch = lena_ch + alpha*hat_ch;
wm_cv = lena_cv + alpha*hat_cv;
wm_cd = lena_cd + alpha*hat_cd;
wm_image = idwt2(wm_ca, wm_ch, wm_cv, wm_cd, 'haar');
wm_imagec = uint8(wm_image);
figure(1)
imshow(CoverImage)
title('CoverImage')
figure(2)
imshow(WatermarkImage)
title('WatermarkImage')
figure(3)
imshow(wm_imagec)
title('watermarked')
%===================Extraction================================
[extraction_wma, extraction_wmh, extraction_wmv, extraction_wmd] = dwt2(wm_imagec,'haar');
sub_wma = (extraction_wma-lena_ca)/alpha;
sub_wmh = (extraction_wmh-lena_ch)/alpha;
sub_wmv = (extraction_wmv-lena_cv)/alpha;
sub_wmd = (extraction_wmd-lena_cd)/alpha;
sub_im = idwt2(sub_wma, sub_wmh, sub_wmv, sub_wmd,'haar');
sub_imc = uint8(sub_im);
figure(4)
imshow(sub_imc)
title('extracte watermarked image');
%==============================================================
%=======================Sharpen============================
SharpedWatermarkImage = wm_imagec;
H = fspecial('unsharp',0.005); %the alpha from 0.005 to 0.1 20 numbers
sharpImage = imfilter(SharpedWatermarkImage,H,'replicate');
figure(5);
imshow(sharpImage);
colormap(gray(256));
title('sharp Image');
imwrite(sharpImage, gray(256), 'sharpImage.bmp');
[sharpen_wma, sharpen_wmh, sharpen_wmv, sharpen_wmd] = dwt2(sharpImage,'haar');
sub_sharpen_wma = (sharpen_wma-lena_ca)/alpha;
sub_sharpen_wmh = (sharpen_wmh-lena_ch)/alpha;
sub_sharpen_wmv = (sharpen_wmv-lena_cv)/alpha;
sub_sharpen_wmd = (sharpen_wmd-lena_cd)/alpha;
sub_sharpen_im = idwt2(sub_sharpen_wma, sub_sharpen_wmh, sub_sharpen_wmv, sub_sharpen_wmd,'haar');
sub_sharpen_im = uint8(sub_sharpen_im);
figure(6)
imshow(sub_sharpen_im)
title('extracte sharpen watermarked image');
psnrSharp = psnr(wm_imagec, sub_sharpen_im)
%===============================================================
%===========================Gaussian Blur=================
GaussianBlurWatermarkedImage = wm_imagec;
H = fspecial('gaussian',size(GaussianBlurWatermarkedImage),0.035); %the alpha from 0.005 to 0.1 20 numbers
GaussianBlurImage = imfilter(GaussianBlurWatermarkedImage,H,'replicate');
figure(8);
colormap(gray(256));
imshow(GaussianBlurImage,[])
title('Gaussian Blur Image');
imwrite(GaussianBlurImage, gray(256), 'GaussianBlurImage.bmp');
[GB_wma, GB_wmh, GB_wmv, GB_wmd] = dwt2(GaussianBlurImage,'haar');
sub_GB_wma = (GB_wma-lena_ca)/alpha;
sub_GB_wmh = (GB_wmh-lena_ch)/alpha;
sub_GB_wmv = (GB_wmv-lena_cv)/alpha;
sub_GB_wmd = (GB_wmd-lena_cd)/alpha;
sub_GB_im = idwt2(sub_GB_wma, sub_GB_wmh, sub_GB_wmv, sub_GB_wmd,'haar');
sub_GB_im = uint8(sub_GB_im);
figure(7)
imshow(sub_GB_im)
title('extracte Guassian Blur watermarked image');
psnrBlur = psnr(wm_imagec, sub_GB_im)
%
% % % %===========================================================
%
%
%
% %=======================Histogram===================================
histogramWatermarkedImage = wm_imagec;
histogramImage = histeq(histogramWatermarkedImage,10); % from 10 to 200
figure(10);
colormap(gray(256));
image(histogramImage);
title('histogramImage Image');
imwrite(histogramImage, gray(256), 'histogramImage.bmp');
[his_wma, his_wmh, his_wmv, his_wmd] = dwt2(histogramImage,'haar');
sub_his_wma = (his_wma-lena_ca)/alpha;
sub_his_wmh = (his_wmh-lena_ch)/alpha;
sub_his_wmv = (his_wmv-lena_cv)/alpha;
sub_his_wmd = (his_wmd-lena_cd)/alpha;
sub_his_im = idwt2(sub_his_wma, sub_his_wmh, sub_his_wmv, sub_his_wmd,'haar');
sub_his_im = uint8(sub_his_im);
figure(11)
imshow(sub_his_im)
title('extracte histogram watermarked image');
% scale the recovered watermark
psnrHistorgram = psnr(wm_imagec, sub_his_im)
%
% %=======================================================================
%====================Noise==========================
NoiseWatermarked = wm_imagec;
NoiseImage = imnoise(NoiseWatermarked,'gaussian',0.005);
figure(12);
colormap(gray(256));
imshow(NoiseImage);
title('noiseImage');
imwrite(NoiseImage, gray(256), 'noiseImage.bmp');
[noise_wma, noise_wmh, noise_wmv,noise_wmd] = dwt2(NoiseImage,'haar');
sub_noise_wma = (noise_wma-lena_ca)/alpha;
sub_noise_wmh = (noise_wmh-lena_ch)/alpha;
sub_noise_wmv = (noise_wmv-lena_cv)/alpha;
sub_noise_wmd = (noise_wmd-lena_cd)/alpha;
sub_noise_im = idwt2(sub_noise_wma, sub_noise_wmh, sub_noise_wmv, sub_noise_wmd,'haar');
sub_noise_im = uint8(sub_noise_im);
figure(13)
imshow(sub_noise_im)
title('extracte noise watermarked image');
% scale the recovered watermark
psnrNoise = psnr(wm_imagec, sub_noise_im)
%=============================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -