• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-27
  • 语言: Matlab
  • 标签: matlab  水印  DCT  

资源简介

DCT域的matlab加水印及去水印,可直接运行,自己改改图片就行

资源截图

代码片段和文件信息

%嵌入水印的程序代码
M=256; %原图像长度
N=32; %水印图像长度
K=8;
I=zeros(MM);J=zeros(NN);BLOCK = zeros(KK);
%显示原图像
subplot(321);I=imread(‘mona.bmp‘‘bmp‘);imshow(I);title(‘原始公开图像‘);
%显示水印图像
subplot(322);J=imread(‘flag.bmp‘‘bmp‘);imshow(J);title(‘水印图像‘);
%嵌入水印
for p=1:N
 for q=1:N
  x=(p-1)*K+1;
  y=(q-1)*K+1;
  BLOCK=I(x:x+K-1y:y+K-1);
  BLOCK=dct2(BLOCK);
  if J(pq)==0
    a=-1;
  else
    a=1;
  end
  BLOCK(11)=BLOCK(11)*(1+a*0.03);
  BLOCK=idct2(BLOCK);
  I(x:x+K-1y:y+K-1)=BLOCK;
 end
end
%显示嵌入水印后的图像
subplot(323);imshow(I);title(‘嵌入水印后的图像‘);
imwrite(I‘watermarked.bmp‘‘bmp‘);
%从嵌入水印的图像中提取水印
I=imread(‘mona‘‘bmp‘);
J=imread(‘watermarked.bmp‘‘bmp‘);
for p=1:N
for q=1:N
x=(p-1)*K+1;
y=(q-1)*K+1;
BLOCK1=I(x:x+K-1y:y+K-1);
BLOCK2=J(x:x+K-1y:y+K-1);
BLOCK1=i

评论

共有 条评论