⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dct.m

📁 一个用于matlab例程加入数字水印的程序,非常有用.
💻 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 + -