% 由高斯正态分布序列 g1 产生 36×4 的水印信
%号 w0,w0 由(0,1)组成。
clear
randn('state',1106);
g1=randn(36,4);
for i=1:36
for j=1:4
if g1(i,j)>=0
w0(i,j)=1;
else w0(i,j)=0;
end;
end;
end;
figure;
imshow(w0);title('水印');
% 对水印信号 w0 进行(7,4)汉明编码,得到一
%36×7 的分组码 x0。
x0=w0;
for i=1:36
s=8*x0(i,1)+4*x0(i,2)+2*x0(i,3)+x0(i,4);
switch s
case 0
x0(i,5)=0;x0(i,6)=0;x0(i,7)=0;
case 1
x0(i,5)=0;x0(i,6)=1;x0(i,7)=1;
case 2
x0(i,5)=1;x0(i,6)=1;x0(i,7)=0;
case 3
x0(i,5)=1;x0(i,6)=0;x0(i,7)=1;
case 4
x0(i,5)=1;x0(i,6)=1;x0(i,7)=1;
case 5
x0(i,5)=1;x0(i,6)=0;x0(i,7)=0;
case 6
x0(i,5)=0;x0(i,6)=0;x0(i,7)=1;
case 7
x0(i,5)=0;x0(i,6)=1;x0(i,7)=0;
case 8
x0(i,5)=1;x0(i,6)=0;x0(i,7)=1;
case 9
x0(i,5)=1;x0(i,6)=1;x0(i,7)=0;
case 10
x0(i,5)=0;x0(i,6)=1;x0(i,7)=1;
case 11
x0(i,5)=0;x0(i,6)=0;x0(i,7)=0;
case 12
x0(i,5)=0;x0(i,6)=1;x0(i,7)=0;
case 13
x0(i,5)=0;x0(i,6)=0;x0(i,7)=1;
case 14
x0(i,5)=1;x0(i,6)=0;x0(i,7)=0;
case 15
x0(i,5)=1;x0(i,6)=1;x0(i,7)=1;
end;
end;
% 对 x0 进行行向位扩展,得到一个由(-1,1)组成
%的扩展序列 y。cr 为扩展因子。
cr=256;
for i=1:252
if x0(i)==1
y(i,1:cr)=1;
else y(i,1:cr)=-1;
end;
end;
y(253:256,:)=0;
% 以下产生伪随机序列 p。为此先设定密钥(1114)
%并产生高斯正态分布序列g2,再由g2产生由(-1,1)
%组成的伪随机序列 p。
randn('state',1114);
g2=randn(256,256);<
|
|
一、引言 随着Internet的普及,信息的安全保护问题日益突出。如何有效地防止数据的非法复制和鉴别数字媒体的知识产权,成为亟需解决的问题。1993年Caronni提出了数字水印的概念,并应用于数字图像,此后,研究人员将数字水印的概念扩展到电视图像和声音等领域,数字水印技术作为版权保护的重要手段而得到了广泛的研究和应用。 数字水印技术涉及到大量图像处理算法、数学计算工具等,用普通编程工具实现上述算法将要花费大量的时间。MATLAB语言是 |
|
|