Ⅰ 基于DCT域数字水印有几种方法 , 基于小波域数字水印方法有几种
DCT域水印算法
基于DCT的水印算法的最大优点就是其与国际压缩标准(JPEG}MPEG,H.261/263)兼容,
水印的嵌入和检测都能够在数据的压缩域中直接进行。但在压缩域中直接进行水印嵌入和
检测所带来的问题是:在量化后的DCT系数上添加的水印(系数的变换)可能在解压缩的过
程中被放大,从而引起水印和图像的失真。好的水印算法必须综合水印的嵌入和图像压缩
技术使失真维持到最小。
Cox等提出在图像全局DCT变换域中除Dc分量外系数幅值最大的n个系数中嵌入水印信
息,由于图像的主要能量均集中在图像低频区域(故低频区域具有较大的系数幅值),因此
相当于在图像的重要分量中嵌入水印信息。另一方面,人类视觉系统对图像的低频、高频
能量比较敏感,而对图像的高频区域变化不敏感,一般的处理都保留图像的重要分量(低
频区域),而改变非重要分量(高频区域),所以水印信息对图像处理的鲁棒性较好。
目前,大部分的DCT水印方法采用的是基于DCT的8x8图像块。E.Koch和J.Zhao从所有
图像块中随机选取一系列图像块,对其进行8x8分块DCT变换,然后将二进制的水印序列添
加到变换矩阵的中频系数来实现水印的嵌入,同时他们在水印嵌入时引入了密钥机制,实
现了水印技术与密码技术的结合:A.GBors和I.Pitas基于高斯网状分类器来抽取图像块,
采用两种方法来添加水印。一种是通过在选定图像块的DCT变换的中频系数中添加线性限
制来加入水印:另一种是在DCT系数中定义一个固定的圆形区域来进行水印嵌入,这种方法
不需要原始图像就可以进行水印的检测。
C.T.Hsu和J.L.wu等071利用可视化模型,在8x8分块DCT系数中按Zig—Zag扫描顺序选择
4x4个中频系数组成小块,通过比较相邻两个小中频系数块中相应位置上系数的大小进行
标志图像水印的嵌入。Bami等从整幅图像的DCT系数中选择中频系数作为水印的嵌入位置。
这些算法选择DCT的中频或低频系数对水印的不可见性和鲁棒性加以折衷,难以抵抗
压缩编码及其他一些图像处理的攻击,而且水印的不可见性极大的依赖于不同图像的特
性。并且他们无一例外地将Dc分量排除在外。黄继武等指出DC分量比任何AC分量都具有更
大的感觉容量,从鲁棒性出发,Dc分量最适合用来嵌入水印,结合图像照度掩蔽特性和纹
理掩蔽特性可得到不可见性和鲁棒性较好的水印算法。
dwt水印算法
自从小波技术成为MPEG-4及JPEG--2000压缩标准的核心技术以来,基于小波域的水印
算法越来越多。在小波域嵌入水印的原因是:可以防止由于JPEG-2000有损压缩而造成的水
印消除:可以利用信源编码领域对图像失真的可见性研究成果来控制水印的嵌入位置和强
度:可以实现在压缩域直接嵌入水印。此外,利用小波多分辨率分析可以更好地控制水印
在宿主图像中的分布,更好地解决鲁棒性和可见性之间的矛盾。
Ⅱ DCT域图像数字水印算法
%嵌入水印的程序代码
clear
clc
M =512;%原图像长度
N =64;%水印图像长度
K =8;
I=zeros(M,M);J=zeros(N,N);BLOCK=zeros(K,K);
%显示原图像
subplot(2,3,1);
I=imread('liftingbody.png','png');imshow(I);title('原始公开图像');
%显示水印图像
subplot(2,3,2);
J=imread('shuiyin.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-1,y:y+K-1);BLOCK=dct2(BLOCK);
if J(p,q)==0
a=-1;
else
a=1;
end
BLOCK(1,1)=BLOCK(1,1)*(1+a*0.03);BLOCK=idct2(BLOCK);
I(x:x+K-1,y:y+K-1)=BLOCK;
end
end
%显示嵌入水印后的图像
subplot(2,3,3);
imshow(I);title('嵌入水印后的图像');
imwrite(I,'watermarked.bmp','bmp');
%从嵌入水印的图像中提取水印
I=imread('liftingbody.png','png');
J=imread('watermarked.bmp','bmp');
J=imnoise(J,'gaussian',0,0.01);
subplot(2,3,4);imshow(J,[]);title('加入高斯噪声');
for p=1:N
for q=1:N
x=(p-1)*K+1;
y=(q-1)*K+1;
BLOCK1 =I(x:x+K-1,y:y+K-1);
BLOCK2 =J(x:x+K-1,y:y+K-1);
BLOCK1=dct2(BLOCK1);
BLOCK2=dct2(BLOCK2);
a = BLOCK2(1,1)/BLOCK1(1,1)-1;
if a<0
W(p,q)=0;
else
W(p,q)=1;
end
end
end
%显示提取的水印
subplot(2,3,5);
imshow(W);
title('从含水印图像中提取的水印');
至于分析算法对噪声攻击的抵抗性能.你需要计算PSNR和相关系数NC就可以了
Ⅲ DCT域图像数字水印算法,新手,这个水印嵌入程序看不明白,谁能帮我把每条注释下Q282092728,谢谢了
M=256;%原图像长度
N=32;%水印图像长度
K=8; %图像分块大小
I=zeros(M,M);%创建一个零矩阵,用于存放载体图像
J=zeros(N,N); %创建一个零矩阵,用于存放水印图像
BLOCK=zeros(K,K);%创建一个零矩阵,用于存放图像分块
%显示水印图像
subplot(1,8,2);
J=imread('14','bmp'); %读入水印图像
imshow(J); %显示水印图像
title('水印图像');
%显示原图像
subplot(1,3,2);
I=imread('11','bmp'); %读入原始图像
imshow(I); %显示原始图像
title('原始公开图像');
%嵌入水印
tem=1;%创建变量tem,没用
for p=1:N%水印图像行循环
for q=1:N%水印图像列循环
x=(p-1)*K+1; %x为载体图像行坐标
y=(q-1)*K+1; %y为载体图像列坐标
BLOCK=I(x:x+K-1,y:y+K-1); %BLOCK为载体图像I的分块,分块大小为K*K,
%初始值为I(0:K-1,0:K-1)
BLOCK=dct2(BLOCK);%对BLOCK进行二维DCT变换,得到新的BLOCK即%DCT系数矩阵BLOCK
if J(p,q)==0%如果水印图像的第(p,q)个像素为0
a=-1;%嵌入参数为-1
else
a=1; %若如果水印图像的第(p,q)个像素为1嵌入参数为1
end
BLOCK(2,1)=BLOCK(2,1)*(1+a*0.01); %对载体图像的分块的DCT系数矩阵
%BLOCK
BLOCK=idct2(BLOCK);%对DCT系数矩阵进行反变换,得到嵌入水印后的载体
%图像分块BLOCK
I(x:x+K-1,y:y+K-1)=BLOCK;%用嵌入水印后的图像分块BLOCK代替载体图像
%的对应分块
End%水印图像列循环结束
End%水印图像行循环结束
%显示嵌入水印后的图像
subplot(1,3,3);
imshow(I);%显示嵌入水印后图像
title('嵌入水印后的图像');
imwrite(I,'embedded.bmp','bmp');%将嵌入水印后图像写成bmp文件
够详细吧,希望对你有用。
Ⅳ 什么是数字水印技术,有那些分类及其作用
----按水印的特性可以将数字水印分为鲁棒数字水印和易损数字水印两类。鲁棒水印(robust
watermarking)主要用于在数字作品中标识着作权信息,利用这种水印技术在多媒体内容的数据中嵌入创建者、所有者的标示信息,或者嵌入购买者的标示(即序列号)。在发生版权纠纷时,创建者或所有者的信息用于标示数据的版权所有者,而序列号用于追踪违反协议而为盗版提供多媒体数据的用户。用于版权保护的数字水印要求有很强的鲁棒性和安全性,除了要求在一般图像处理(如:滤波、加噪声、替换、压缩等)中生存外,还需能抵抗一些恶意攻击。
----易损水印(fragile
watermarking),与鲁棒水印的要求相反,易损数字水印主要用于完整性保护,这种水印同样是在内容数据中嵌入不可见的信息。当内容发生改变时,这些水印信息会发生相应的改变,从而可以鉴定原始数据是否被篡改。易损水印应对一般图像处理(如:滤波、加噪声、替换、压缩等)有较强的免疫能力(鲁棒性),同时又要求有较强的敏感性,即:既允许一定程度的失真,又要能将失真情况探测出来。必须对信号的改动很敏感,人们根据易损水印的状态就可以判断数据是否被篡改过。
----不同的应用需求造就了不同的水印技术。按水印的用途,我们可以将数字水印划分为票证防伪水印、版权保护水印、篡改提示水印和隐蔽标识水印。
----票证防伪水印是一类比较特殊的水印,主要用于打印票据和电子票据、各种证件的防伪。一般来说,伪币的制造者不可能对票据图像进行过多的修改,所以,诸如尺度变换等信号编辑操作是不用考虑的。但另一方面,人们必须考虑票据破损、图案模糊等情形,而且考虑到快速检测的要求,用于票证防伪的数字水印算法不能太复杂。
----版权标识水印是目前研究最多的一类数字水印。数字作品既是商品又是知识作品,这种双重性决定了版权标识水印主要强调隐蔽性和鲁棒性,而对数据量的要求相对较小。
----篡改提示水印是一种脆弱水印,其目的是标识原文件信号的完整性和真实性。
----隐蔽标识水印的目的是将保密数据的重要标注隐藏起来,限制非法用户对保密数据的使用。
----按数字水印的隐藏位置,我们可以将其划分为时(空)域数字水印、频域数字水印、时/频域数字水印和时间/尺度域数字水印。
----时(空)域数字水印是直接在信号空间上叠加水印信息,而频域数字水印、时/频域数字水印和时间/尺度域数字水印则分别是在dct变换域、时/
频变换域和小波变换域上隐藏水印。
----随着数字水印技术的发展,各种水印算法层出不穷,水印的隐藏位置也不再局限于上述四种。应该说,只要构成一种信号变换,就有可能在其变换空间上隐藏水印。
按透明性划分
按数字水印的透明性质,可分为可见水印和不可见水印两种。可见水印就是人眼能看见的水印,比如照片上标记的拍照的日期或者电视频道上的标识等。不可见水印就是人类视觉系统难以感知的,也是当前数字水印领域关注比较多的。