📄 dct.m
字号:
clear
close all
W=imread('watermark32.bmp');
W=im2bw(W,0.5);
figure,imshow(W) ,title('origianl watermark') ;
n=32;m=256;k=8;
key1=2;key2=3;
I=imread('lena.bmp');
figure,imshow (I) ,title('origianl image') ;
I=double(I);
J=zeros(256);
%嵌入水印
for p=1:n
for q=1:n
x =(p-1)*k + 1;
y =(q-1)*k + 1;
block =I( x:x+k-1,y:y+k-1) ;
block=dct2(block);
if W(p,q)==0
w=-1;
else
w=1;
end
block(2,3) =block(2,3)*(1+w*0.5);
block=idct2(block) ;
J(x:x+k-1,y:y+k-1)=block;
end
end
%显示嵌入水印的图像
figure, imshow (J,[]),title( 'watermarked image');
%水印提取
for p=1:n
for q=1:n
x =(p-1)*k + 1;
y =(q-1)*k + 1;
block1 =I( x:x+k-1,y:y+k-1) ;
block2 =J( x:x+k-1,y:y+k-1) ;
block1=dct2(block1);
block2=dct2(block2);
s=block2(2,3)/block1(2,3);
if s>1
W1(p,q)=1;
else
W1(p,q)=0;
end
end
end
%显示提取的水印
W1=logical(W1);
figure,imshow(W1);title( 'extracted watermark ');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -