
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')
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)