版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./clearall;closeall;clc;V=double<imread<'D:\lena\lena.jpg'>>;imshow<mat2gray<V>>;[iu]=size<V>;%计算V的规格r=100;%设置分解矩阵的秩W=rand<i,r>%初始化WH,为非负数H=rand<r,u>maviter=100;%最大迭代次数foriter=1:maviterW=W.*<<V./<W*H>>*H'>;%注意这里的三个公式和文中的是对应的W=W./<ones<i,1>*sum<W>>;H=H.*<W'*<V./<W*H>>>;endimg_V=W*H;figure;imshow<mat2gray<img_V>>;首先读入原始图象并设置参数,然后嵌入水印信息,程序代码如下:clear
%size=256;block=8;blockno=size/block;LENGTH=size*size/64;Alpha1=0.02;
Alpha2=0.1;T1=3;I=zeros<size,size>;D=zeros<size,size>;BW=zeros<size,size>;block_dct1=zeros<block,block>;%产生水印序列并对其排序randn<'seed',10>;watermark1=randn<1,LENGTH>;subplot<2,2,1>;plot<watermark1>;title<'watermarc:Gaussiannoise'>;subplot<2,2,3>;title<'edgeoforigineimage'>
[Y0,I0]=sort<watermark1>;
%
%读入原图象trueImage=imread<'H:\DocumentsandSettings\sunhw\MyDocuments\MyPictures\biaozhun.bmp'>;
alfa=.1;
LENGTH=2500;
subplot<2,2,2>;
imshow<trueImage>;
title<'origineimage:I'>;
%
%对原图象进行DCT变换dctF1=dct2<'H:\DocumentsandSettings\sunhw\MyDocuments\MyPictures\biaozhun.bmp'>;
[m,n]=size<dctF1>;
%
%找出水印嵌入位置〔幅值较大的n个频域成分A=dctF1<:>;
[Y1,I1]=sort<A>;
x=m*n;
k=LENGTH;
M=zeros<x,1>;
%
%修改幅值较大的n个频域成分的幅值,嵌入水印〔因为两个问题不同,所以有两个注释符fori=1:x
ifk>=1
M<x>=Y1<x>*<1+alfa*Y0<k>>;
k=k-1;
else
M<x>=Y1<x>;
end
x=x-1;
end
N=zeros<x,1>;
x=m*n;
fori=1:x
N<I1<i>>=M<i>;
end
a=1;
forj=1:n
fori=1:m
dctF2<i,j>=N<a>;
a=a+1;
end
end
%
%DCT反变换,得到嵌入水印的图象idctF1=idct2<dctF2>;
subplot<2,2,4>;
imshow<log<abs<idctF1>>,[]>;
title<'embededimage:D'>;
%endI=imread<'D:\lena\1.jpg'>;disp<I>;I=double<I>/255;disp<I>;I=ceil<I>;%%%%%%%%%%显示水印图像%%%%%%%%%%%%%figure<1>;subplot<2,3,1>;imshow<I>,title<'水印图像'>dimI=size<I>;rm=dimI<1>;cm=dimI<2>;%%%%%%%%%%%%%%%5
以下生成水印信息%%mark=I;alpha=0.05;V=imread<'D:\lena\lena.jpg'>;[iu]=size<V>;%计算V的规格r=100;%设置分解矩阵的秩W=rand<i,r>%初始化WH,为非负数H=rand<r,u>maviter=100;%最大迭代次数foriter=1:maviterW=W.*<<V./<W*H>>*H'>;%注意这里的三个公式和文中的是对应的W=W./<ones<i,1>*sum<W>>;H=H.*<W'*<V./<W*H>>>;endk1=H;psnr_cover=double<V>;subplot<2,3,2>,imshow<a0,[]>,title<'载体图像'>;[r,c]=size<a0>;cda0=blkproc<a0,[8,8],'dct2'>;%%%%%%%%%%%%%%%%%%%%嵌入%%%%%%cda1=cda0;
%cda1=256_256fori=1:rm
%i=1:32
forj=1:cm
%j=1:32
x=<i-1>*10;y=<j-1>*10;
ifmark<i,j>==1
k=k1;
else
k=k2;
end
cda1<x+1,y+8>=cda0<x+1,y+8>*<1+alpha*k<1>>;
cda1<x+2,y+7>=cda0<x+2,y+7>*<1+alpha*k<2>>;
cda1<x+3,y+6>=cda0<x+3,y+6>*<1+alpha*k<3>>;
cda1<x+4,y+5>=cda0<x+4,y+5>*<1+alpha*k<4>>;
cda1<x+5,y+4>=cda0<x+5,y+4>*<1+alpha*k<5>>;cda1<x+6,y+3>=cda0<x+6,y+3>*<1+alpha*k<6>>;
cda1<x+7,y+2>=cda0<x+7,y+2>*<1+alpha*k<7>>;
cda1<x+8,y+1>=cda0<x+8,y+1>*<1+alpha*k<8>>;
endend%%%%%嵌入水印后图像%%%%%%%%%%%%%%a1=blkproc<cda1,[8,8],'idct2'>;a_1=uint8<a1>;imwrite<a_1,'withmark.bmp','bmp'>;subplot<2,3,3>,imshow<a1,[]>,title<'嵌入水印后的图像'>;size=256;block=8;blockno=size/block;%一行有32格LENGTH=size*size/64;Alpha1=0.025;Alpha2=0.1;T1=3;I=zeros<size,size>;%产生全矩阵D=zeros<size,size>;BW=zeros<size,size>;Block_dct1=zeros<block,block>;%产生水印,并显示水印信息;subplot<3,2,1>;Info='dcf';InfoStrSize=length<Info>;%将字符串转换为位数组array=zeros<1,InfoStrSize*8>;form=1:InfoStrSize
Infochar=double<Info<m>>;
%%'c'为99forn=1:8
array<8*<m-1>+n>=bitget<Infochar,n>;%%获得Infochar第n位的值
endendplot<array>;title<'原始水印信息'>;%显示原图subplot<3,2,2>;i=imread<'lena.bmp'>;imshow<i,[]>;title<'原始图像'>%显示prewitt为算子的边缘图BW=edge<i,'prewitt'>;%BW=edge<I,’Roberts’>;%BW=edge<I,’Sobel’>;%BW=edge<I,’zerocross’>;subplot<3,2,3>;imshow<BW>;Title<'原始图像边缘图'>;%嵌入水印l=1;k=1;form=1:blockno
forn=1:blockno
x=<m-1>*block+1;
y=<n-1>*block+1;%算出每格图像的坐标〔x,y,block=8,8*8的图像小格
block_dct1=H<x:x+block-1,y:y+block-1>;%取原始图像小格中的像素点到block_dct1矩阵中。block_dct1=dct2<block_dct1>;%对二维数组进行离散余弦变换。dct是有损压缩如jpeg使用的技术。Dct是可逆的运算
BW_8_8=BW<x:x+block-1,y:y+block-1>;%得到边界矩阵。
ifm<=1|n<=1
T=0;
else
T=sum<BW_8_8>;
T=sum<T>;
end
ifT>T1
Alpha=Alpha2;
%block_dct1<1,1>=block_dct1<1,1>*<1+Alpha*mark<k>>;
ifl<=<InfoStrSize*8>
block_dct1<1,1>=block_dct1<1,1>*<1+Alpha*array<l>>;
l=l+1;
end
else
Alpha=Alpha1;
%block_dct1<1,1>=block_dct1<1,1>*<1+Alpha*mark<k>>;
end
Block_dct=idct2<block_dct1>;
D<x:x+block-1,y:y+block-1>=Block_dct;
k=k+1;
endend%显示嵌入水印后的图像subplot<3,2,4>;imshow<D,[]>;title<'嵌入水印图像'>%保存该图像D=uint8<D>;imwrite<D,'marked.bmp'>;2:
%提取水印
D=imread<'marked.bmp'>;
D=double<D>;I=imread<'lena.bmp'>;I=double<I>;array2=zeros<1,InfoStrSize*8>;K=1;l=1;form=1:blockno
forn=1:blockno
x=<m-1>*block+1;
y=<n-1>*block+1;%算出每格图像的坐标〔x,y,block=8,8*8的图像小格
block_dct1=I<x:x+block-1,y:y+block-1>;%取原始图像小格中的像素点到block_dct1矩阵中。
block_dct2=D<x:x+block-1,y:y+block-1>;Block_dct1=dct2<block_dct1>;%对二维数组进行离散余弦变换。dct是有损压缩如jpeg使用的技术。Dct是可逆的运算Block_dct2=dct2<block_dct2>;
BW_8_8=BW<x:x+block-1,y:y+block-1>;%得到边界矩阵。
ifm<=1|n<=1
T=0;
else
T=sum<BW_8_8>;
T=sum<T>;
end
ifT>T1
Alpha=Alpha2;
%block_dct1<1,1>=block_dct1<1,1>*<1+Alpha*mark<k>>;
ifl<=<InfoStrSize*8>
tmp=<Block_dct2<1,1>/Block_dct1<1,1>-1>;
tmp=tmp/Alpha;
tmp2=round<tmp>;
array2<l>=double<tmp2>;
l=l+1;
end
else
Alpha=Alpha1;
%block_dct1<1,1>=block_dct1<1,1>*<1+Alpha*mark<k>>;
end
k=k+1;
endendsubplot<3,2,5>;plot<array2>;title<'提取水印'>;extractedInfo=zeros<InfoStrSize,1>;form=1:InfoStrSize
infochar=0;
forn=1:8
ifarray2<8*<m-1>+n>==1
infochar=infochar+bitset<0,n,1>;
end
end
extractedInfo<m>=infochar+extractedInfo<m>;endresultStr=char<extractedInfo>;subplot<3,2,6>;plot<array2>;r=Arnold<w0,row,colum,times>
fork=1:times
fori=1:row
forj=1:colum
i1=i+j;
j1=i+2*j;
ifi1>row
i1=mod<i1,row>;
end
ifj1>colum
j1=mod<j1,colum>;
end
ifi1==0
i1=row;
end
ifj1==0
j1=colum;
end
w1<i1,j1>=w0<i,j>;
end
end
w0=w1;
end
r=w0;%提取水印
forp=1:size/B
forq=1:size/B
x=<p-1>*B+1;y=<q-1>*B+1;
if<I_W<x,y>-P<x,y>>>0
F<p,q>=1;
else
F<p,q>=0;
end
end
end
figure<5>;imshow<F,[]>;title<'提取出的水印'>;%
%攻击实验
disp<'inputyouchoiceaccordingtothefollowing
imageprocessingoperation:'>;
disp<'0--exit'>;
disp<'1--smoothingpatterns'>;
%添加噪音
disp<'2--addinguniormnoise添加噪音'>;
%滤波
disp<'3--addingfilter[1010]滤波'>;
%剪切
disp<'4--cuttingpartoftheimage剪切'>;
%压缩
disp<'5--10qualityJPEGcompressing压缩'>;
%旋转45度
disp<'6--rotate45旋转'>;
%
d=input<'pleaseinputyouchoice<1,2,3,4,5,6>:'>;
whiled~=0
switchd
case1
watermark_detect<idctF1,Y1,I0,waterMark1>;
case2
WImage2=idctF1;
noise0=10*rand<size<WImage2>>;
WImage2=WImage2+noise0;
figure;
imshow<WImage2,[]>;
title<'addinguniformnoise添加噪音'>;
watemark_detect<WImage2,Y1,I0,waterMark1>;
case3
WImage3=idctF1;
H=fspcial<'gaussian高斯',[10,10],5>;
WImage3=imfilter<WImage3,H>;
figure;
imshow<WImage3,[]>;
title<throughfilter[10,10]滤波'>;
watemark_detect<WImage3,Y1,I0,waterMark1>;
case4
WImage4=idctF1;WImage4<1:128,1;128>=256;
figure;
imshow<WImage4>;
title<'cuttingpartoftheimage剪切'>;
watemark_detect<WImage4,Y1,I0,waterMark1>;
case5
WImage5=idctF1;
WImage5=im2double<WImage5>;
cnum=10;
dctm=dctmtx<8>;
p1=dctm;
p2=dctm.';
imageDCT=blkproc<WImage5,[8,8],'p1*p2*x',dctm,dctm.'>;
DCTvar=im2col<imageDCT,[8,8],'distinct'>.';
n=size<DCTvar,1>;
DCTvar=<sum<DCTvar.*DCTvar>-<sum<DCTvar>/n>.^2>/n;
[dum,order]=sort<DCTvar>;
cnum=64-cnum;
mask=ones<8,8>;
mask<order<1:cnum>>=zeros<1,cnum>;
im88=zeros<9,9>;
im88<1:8,1:8>=mask;
im128128=kron<im88<1:8,1:8>,ones<16>>;
dctm=dctmtx<8>;
p1=dctm.';
p2=mask<1;8,1:8>;
p3=dctm;
Wimage5=bikproc<imageDCT,[8,8],'p1*<x.8p2>*p3',dctm.',mask<1:8,1:8>,dctm>;
figure;
imshow<Wimage5>;
title<'JPEGImage压缩'>;
watemark_detect<WImage5,Y1,I0,waterMark1>;
case6WImage6=idctF1;
WImage6=imrotate<WImage6,45,'bilinear','corp'>;
figure;
imshow<Wimage6>;
title<'rotate45旋转'>;
watemark_detect<WImage6,Y1,I0,waterMark1>;
case0
break;
otherwise
error<'youhaveavalidvalue<您的输入错误>'>;
end
d=input<'pleaseinputyouchoice<请输入您的选择>:'>;
end
%结束f=imread<'watermark.jpg'>;%将含水印图像f归一化,以便于攻击处理。m=max<max<I_W>;I_W=double<I_W>./double<m>;%攻击attack=0;switchattack
case0,
attackf=I_W;
att='未攻击';
case1,
%%1.JPEG压缩
imwrite<I_W,'attackf.jpg','jpg','quality',30>;
attackf=imread<'attackf.jpg'>;
attackf=double<attackf>/255;
att='JPEG压缩';
case2,%%2.高斯低通滤波h=fspecial<'gaussian',3,1>;attackf=filter2<h,I_W>;att='高斯低通滤波';
case3,%%3.直方图均衡化attackf=histeq<I_W>;att='直方图均衡化';
case4,%%4.图像增亮attackf=imadjust<I_W,[],[0.4,1]>;att='图像增亮';
case5,%%5.图像变暗attackf=imadjust<I_W,[],[0,0.85]>;att='图像变暗';
case6,%%6.增加对比度attackf=imadjust<I_W,[0.3,0.6],[]>;att='增加对比度';
case7,%%7.降低对比度attackf=imadjust<I_W,[],[0.2,0.8]>;att='降低对比度';
case8,%%8.添加高斯噪声attackf=imnoise<I_W,'gaussian',0,0.01>;att='添加高斯噪声';
case9,%%9.椒盐噪声attackf=imnoise<I_W,'salt&pepper',0.06>;att='椒盐噪声';
case10,%%10.添加乘积性噪声attackf=imnoise<I_W,'speckle',0.08>;att='添加乘积性噪声';end;%攻击后处理I_W=attackf.*double<m>;figure<2>;imshow<uint8<I_W>;%显示水印嵌入图攻击后效果title<att>;imwrite<uint8<I_W>,'watermark.jpg'>;%提取水印%clear;a=imread<'watermark.jpg'>;t=sdwt_ex<double<a>,'db2',tkey>;%根据密钥树分解[w,map]=extract<t,tkey>;%抽取水印[r,c]=size<w>;figure<3>;fori=1:r
subplot<ceil<r/3>,3,i>
imshow<255-100*abs<uint8<reshape<w<i,:>,map<1>,map<2>>>>>;
title<strcat<'抽取水印图',num2str<i>>>;end;V=imread<'D:\lena\lena.jpg'>;Alfa=0.05;LENGTH=2500;[iu]=size<V>;%计算V的规格r=100;%设置分解矩阵的秩W=rand<i,r>%初始化WH,为非负数H=rand<r,u>maviter=100;%最大迭代次数foriter=1:maviterW=W.*<<V./<W*H>>*H'>;%注意这里的三个公式和文中的是对应的W=W./<ones<i,1>*sum<W>>;H=H.*<W'*<V./<W*H>>>;end[Y1,10]=sort<H>L=imread<'D:\lena\1.jpg'>;[Y0,10]=sort<L>x=m*n;
k=LENGTH;
M=zeros<x,1>;
%
%修改幅值较大的n个频域成分的幅值,嵌入水印〔因为两个问题不同,所以有两个注释符
fori=1:x
ifk>=1
M<x>=Y1<x>*<1+alfa*Y0<k>>;
k=k-1;
else
M<x>=Y1<x>;
end
x=x-1;
end
N=zeros<x,1>;
x=m*n;
fori=1:x
N<I1<i>>=M<i>;
end
a=1;
forj=1:n
fori=1:m
N<i,j>=N<a>;
a=a+1;
end
end
%
%重构图像,得到嵌入水印的图象
B=W.*H;figure<1>;
imshow<B>;
title<'嵌入水印后的图象'>;
endclearall;clc;start_time=cputime;%%%%%%%%%%%%读取水印图像%%%%%%%%I=imread<'mark.bmp'>;I=rgb2gray<I>;I=double<I>/255;I=ceil<I>;%%%%%%%%%%显示水印图像%%%%%%%%%%%%%figure<1>;subplot<2,3,1>;imshow<I>,title<'水印图像'>dimI=size<I>;rm=dimI<1>;cm=dimI<2>;%%%%%%%%%%%%%%%5以下生成水印信息%%mark=I;alpha=50,k1=randn<1,8>;k2=randn<1,8>;a0=imread<'lena.bmp'>;psnr_cover=double<a0>;subplot<2,3,2>,imshow<a0,[]>,title<'载体图像'>;[r,c]=size<a0>;cda0=blkproc<a0,[8,8],'dct2'>;%%%%%%%%%%%%%%%%%%%%%嵌入%%%%%%%%%%cda1=cda0;%cda1=256_256fori=1:rm%i=1:32forj=1:cm%j=1:32x=<i-1>*8;y=<j-1>*8;ifmark<i,j>==1k=k1;elsek=k2;endcda1<x+1,y+8>=cda0<x+1,y+8>+alpha*k<1>;cda1<x+2,y+7>=cda0<x+2,y+7>+alpha*k<2>;cda1<x+3,y+6>=cda0<x+3,y+6>+alpha*k<3>;cda1<x+4,y+5>=cda0<x+4,y+5>+alpha*k<4>;cda1<x+5,y+4>=cda0<x+5,y+4>+alpha*k<5>;cda1<x+6,y+3>=cda0<x+6,y+3>+alpha*k<6>;cda1<x+7,y+2>=cda0<x+7,y+2>+alpha*k<7>;cda1<x+8,y+1>=cda0<x+8,y+1>+alpha*k<8>;endend%%%%%嵌入水印后图像%%%%%%%%%%%%%%a1=blkproc<cda1,[8,8],'idct2'>;a_1=uint8<a1>;imwrite<a_1,'withmark.bmp','bmp'>;subplot<2,3,3>,imshow<a1,[]>,title<'嵌入水印后的图像'>;disp<'嵌入水印处理时间'>;embed_time=cputime-start_time,%%%%%%%%disp<'对嵌入水印的图像的攻击实验,请输入选择项:'>;disp<'1--添加白噪声'>;disp<'2--高斯低通滤波'>;disp<'3--JPEG压缩'>;disp<'4--图像剪切'>;disp<'5--旋转10度'>;disp<'6--直接检测水印'>;disp<'其他--不攻击'>;d=input<'请输入选择〔1-6:'>;start_time=cputime;figure<1>;switchdcase6subplot<2,3,4>;imshow<a1,[]>;title<'未受攻击的含水印图像'>;M1=a1;case1WImage2=a1;noise0=20*randn<size<WImage2>>;WImage2=WImage2+noise0;subplot<2,3,4>;imshow<WImage2,[]>;title<'加入白噪声后图像'>;M1=WImage2;M_1=uint8<M1>;imwrite<M_1,'whitenoise.bmp','bmp'>;case2WImage3=a1;H=fspecial<'gaussian',[4,4],0.2>;WImage3=imfilter<WImage3,H>;subplot<2,3,4>;imshow<WImage3,[]>;title<'高斯低通滤波后图像'>;M1=WImage3;M_1=uint8<M1>;imwrite<M_1,'gaussian.bmp','bmp'>;case4WImage4=a1;WImage4<1:64,1:512>=512;%WImage4<224:256,1:256>=256;%WImage4<1:256,224:256>=256;%WImage4<1:256,1:32>=256;WImage4cl=mat2gray<WImage4>;figure<2>;subplot<1,1,1>;%subplot<2,3,4>;imshow<WImage4cl>;title<'部分剪切后图像'>;figure<1>;M1=WImage4cl;%M_1=uint8<M1>;%imwrite<M_1,'cutpart.bmp','bmp'>;case3WImage5=a1;WImage5=im2double<WImage5>;cnum=10;dctm=dctmtx<8>;P1=dctm;P2=dctm.';imageDCT=blkproc<WImage5,[8,8],'P1*x*P2',dctm,dctm.'>;DCTvar=im2col<imageDCT,[8,8],'distinct'>.';n=size<DCTvar,1>;DCTvar=<sum<DCTvar.*DCTvar>-<sum<DCTvar>/n>.^2>/n;[dum,order]=sort<DCTvar>;cnum=64-cnum;mask=ones<8,8>;mask<order<1:cnum>>=zeros<1,cnum>;im88=zeros<9,9>;im88<1:8,1:8>=mask;im128128=kron<im88<1:8,1:8>,ones<16>>;dctm=dctmtx<8>;P1=dctm.';P2=mask<1:8,1:8>;P3=dctm;WImage5=blkproc<imageDCT,[8,8],'P1*<x.*P2>*P3',dctm.',mask<1:8,1:8>,dctm>;WImage5cl=mat2gray<WImage5>;%figure<2>;subplot<2,3,4>;imshow<WImage5cl>;title<'经JPEG压缩后图像'>;%figure<1>;M1=WImage5cl;case5WImage6=a1;WImage6=imrotate<WImage6,10,'bilinear','crop'>;WImage6cl=mat2gray<WImage6>;figure<2>;subplot<1,1,1>;imshow<WImage6cl>;title<'旋转10度后图像'>;figure<1>;M1=WImage6cl;otherwisedisp<'你输入的是无效数字,图像未受攻击,将直接检测水印'>;subplot<2,3,4>;imshow<a1,[]>;title<'未受攻击的含水印图像'>;M1=a1;end%6666666666666666666666666666666666666666提取水印%%%%%psnr_watermarked=M1;dca1=blkproc<M1,[8,8],'dct2'>;p=zeros<1,8>;fori=1:dimI<1>forj=1:dimI<2>%j=1:32x=<i-1>*8;y=<j-1>*8;p<1>=dca1<x+1,y+8>;p<2>=dca1<x+2,y+7>;p<3>=dca1<x+3,y+6>;p<4>=dca1<x+4,y+5>;p<5>=dca1<x+5,y+4>;p<6>=dca1<x+6,y+3>;p<7>=dca1<x+7,y+2>;p<8>=dca1<x+8,y+1>;%sd1=sum<sum<p.*k1>>/sqrt<sum<sum<p.^2>>>;%sd2=sum<sum<p.*k2>>/sqrt<sum<sum<p.^2>>>;%ifsd1>sd2ifcorr2<p,k1>>corr2<p,k2>,warningoffMATLAB:divideByZero;mark1<i,j>=1;elsemark1<i,j>=0;endendend%mark=round<mark1>;%防止出现的那些小数,影响10-2进制的转换subplot<2,3,5>;imshow<mark1,[]>,title<'提取的水印图像'>;subplot<2,3,6>;imwrite<mark1,'getmark.bmp','bmp'>;imshow<mark>,title<'原嵌入水印比较'>;%%%%time%%%%%%%disp<'攻击与提取处理时间'>attack_recover_time=cputime-start_time,%%%%%psnr%%%%%%%disp<'载体图像与含水印图像峰值信噪比'>PSNR=psnr<psnr_cover,psnr_watermarked,c,r>,%%%%%%%Oringinalmarkandmarktest%%%%%%%%%%disp<'原水印图像与提取水印图像互相关系数'>NC=nc<mark1,mark>,数字水印的概念数字水印技术是指用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。通过这些隐藏在多媒体内容中的信息,可以确定内容的创建者,判断内容的真实完整性。数字水印技术需要增加鲁棒性要求,以对抗各种可能的攻击。数字水印的基本特征隐藏性:数字产品加入数字水印后,应不会引起数字作品的明显质降,并不易被接收者察觉。安全可靠性:水印体制要商业应用,其算法必须公开。算法的安全性完全取决于密钥,而不是对算法进行保密。另外,数字水印应能对抗非法的探测和解码,面对非法的攻击也能以极低的差错率识别作品,同时数字水印应很难被他人复制和伪造。鲁棒性:能在多种无意或有意的信号处理过程后,仍能保持水印的完整性和鉴别的准确性。对数字水印来说,其隐藏水印的鲁棒性在实际应用中是有由两部分组成:〔1在整体数据出现失真后,其内嵌水印仍存在;〔2在数据失真后,水印探测算法仍能准确探测出水印的存在。计算复杂度:不同应用对水印嵌入算法和提取算法的计算复杂度有不同的要求。数字水印的应用领域随着数字水印技术的发展,数字水印的应用领域也得到了扩展,数字水印的基本应用领域是版权保护、隐藏标识、认证和安全不可见通信。当数字水印应用于版权保护时,潜在的应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模的广播服务。数字水印用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容的检索等领域得到应用。数字水印的认证方面主要ID卡、信用卡、ATM卡等上面数字水印的安全不可见通信将在国防和情报部门得到广泛的应用。多媒体技术的飞速发展和Internet的普及带来了一系列政治、经济、军事和文化问题,产生了许多新的研究热点,以下几个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津体育学院《藏医方剂学与泻治学》2023-2024学年第一学期期末试卷
- 苏州科技大学《工程算量与计价软件应用》2023-2024学年第一学期期末试卷
- 上海大学《生物统计学与R语言应用》2023-2024学年第一学期期末试卷
- 山西大同大学《产业金融学》2023-2024学年第一学期期末试卷
- 庆阳职业技术学院《学前儿童传统文化教育》2023-2024学年第一学期期末试卷
- 2025年度私家车借出免责及保险责任协议
- 2025年度安防产品销售合同电子版技术规格与安全保障
- 二零二五年度真石漆施工及建筑立面改造合同
- 辽宁特殊教育师范高等专科学校《社会经济统计学》2023-2024学年第一学期期末试卷
- 2025年度非全日制研究生定向培养及科研支持合作协议
- 肿瘤科患者安全管理
- 2025届湖北省高三上学期12月联考语文试题
- 国家开放大学《Photoshop图像处理》章节测试题参考答案
- 飞行原理(第二版) 课件 第10章 高速空气动力学基础
- 广西《乳腺X射线数字化体层摄影诊疗技术操作规范》
- 江苏省南京市2023-2024学年高一上学期物理期末试卷(含答案)
- 山西省2024年中考道德与法治真题试卷(含答案)
- 新疆乌鲁木齐市(2024年-2025年小学五年级语文)人教版阶段练习(上学期)试卷及答案
- 酒店会议室设备安装及调试方案
- 2024年新疆(兵团)公务员考试《行测》真题及答案解析
- 2024年人教版八年级生物上册期末考试卷(附答案)
评论
0/150
提交评论