(完整word版)数字水印源码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字水印源码,希望对大家学习有帮助.

% 由高斯正态分布序列 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);<

5.17 用MATLAB数字图像水印

一、引言

随着Internet的普及,信息的安全保护问题日益突出。如何有效地防止数据的非法复制和鉴别数字媒体的知识产权,成为亟需解决的问题。1993年Caronni提出了数字水印的概念,并应用于数字图像,此后,研究人员将数字水印的概念扩展到电视图像和声音等领域,数字水印技术作为版权保护的重要手段而得到了广泛的研究和应用。

数字水印技术涉及到大量图像处理算法、数学计算工具等,用普通编程工具实现上述算法将要花费大量的时间。MATLAB语言是MathWorks公司推出的一种简单、高效、功能极强的高级语言,具有高性能数值计算能力和可视化计算环境。许多复杂的计算问题只需短短的几行代码就可在MATLAB中实现。本文基于典型的DCT(离散余弦变换)数字水印算法过程,详细介绍用MATLAB实现数字水印的嵌入、提取和攻击测试的方法。

二、数字水印技术

从信号处理的角度看,在载体图像中嵌入数字水印可以视为在强背景(即原始图像)下叠加一个视觉上看不到的弱信号(水印),由于人的视觉系统(Human Visual System,HVS)分辨率受到一定的限制,只要叠加信号的幅度低于HVS的对比度门限,HVS就无法感觉到信号的存在,因此,通过对载体对象作一定的调整,就有可能在不引起人感知的情况下嵌入一些信息。

1.数字水印的嵌入

水印嵌入就是把水印信号W={ω(κ)} 嵌入到原始图像X

0={χ

(κ)}中。水印嵌入过程如

图1所示。

水印嵌入准则分为:

加法准则:χ

W (κ) =χ

(κ)+αω(κ)

乘法准则:χ

W (κ) =χ

(κ)(1+αω(κ))

α为强度因子,为了保证在水印不可见的前提下,尽可能提高嵌入水印的强度。α的选择必须考虑图像的性质和视觉系统的特性。

2.水印的提取与检测

在某些水印系统中,水印可以被精确地提取出来,这一过程被称作水印提取。例如在完整性确认的应用中,必须能够精确地提取出嵌入的水印,并且通过水印的完整性来确认多媒体数据的完整性。如果提取出的水印发生了部分的变化,最好还能够通过变化的水印的位置来确定原始数据被篡改的位置。水印在提取检测时可以需要原始图像的参与,也可以不需要原始图像的参与。但将水印技术用于图像的网络发布和传播时,如果检测时需要使用原始图像则是个缺

相关文档
最新文档