永发信息网

用MATLAB给图片加水印,怎样生成要加入的水印,并把水印嵌入图片中。 给个程序呗,谢谢了

答案:2  悬赏:50  手机版
解决时间 2021-04-02 11:21
  • 提问者网友:辞取
  • 2021-04-01 22:12
用MATLAB给图片加水印,怎样生成要加入的水印,并把水印嵌入图片中。 给个程序呗,谢谢了
最佳答案
  • 五星知识达人网友:白昼之月
  • 2021-04-01 22:52
M=256; %原图像长度
N=32; %水印图像长度
K=8;
I=zeros(M,M);
II=zeros(K,K);
B=zeros(M,M);
Idct=zeros(K,K);
D=zeros(M,M);

%读取原图像
I=imread('d:\My Documents\数字水印\LENA.BMP');
subplot(2,2,1);
%显示原图像
imshow(I);
title('原图像');

%产生水印序列
randn('seed',10);
mark=randn(1024,1);
subplot(2,2,2);
plot(mark);
title('水印序列');

%嵌入水印
T=1;
for m=1:N
for n=1:N
x=(m-1)*K+1;
y=(n-1)*K+1;
II=I(x:x+K-1,y:y+K-1);%将原图分成8*8的子块
Idct=dct2(II);%对子块进行DCT变换
if x==1&y==1
alfa=0.002;
else
alfa=0;
end
B=Idct*(1+alfa*mark(T));%嵌入水印
Bidct=idct2(B);%进行DCT反变换
I(x:x+K-1,y:y+K-1)=Bidct;
T=T+1;
end
end
subplot(2,2,3);
imshow(I);%显示嵌入水印后的图像
title('嵌入水印后的图像');imwrite(I,'嵌入后的图像.bmp');
全部回答
  • 1楼网友:渊鱼
  • 2021-04-02 00:02
有没有人可以解释一下这是什么意思??
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯