版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
./clearall;closeall;clc;V=double<imread<'D:\lena\lena.jpg'>>;imshow<mat2gray<V>>;[iu]=size<V>;%計算V的規(guī)格r=100;%設(shè)置分解矩陣的秩W=rand<i,r>%初始化WH,為非負(fù)數(shù)H=rand<r,u>maviter=100;%最大迭代次數(shù)foriter=1:maviterW=W.*<<V./<W*H>>*H'>;%注意這里的三個公式和文中的是對應(yīng)的W=W./<ones<i,1>*sum<W>>;H=H.*<W'*<V./<W*H>>>;endimg_V=W*H;figure;imshow<mat2gray<img_V>>;首先讀入原始圖象并設(shè)置參數(shù),然后嵌入水印信息,程序代碼如下: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>;%產(chǎn)生水印序列并對其排序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'>;
%
%對原圖象進(jìn)行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的規(guī)格r=100;%設(shè)置分解矩陣的秩W=rand<i,r>%初始化WH,為非負(fù)數(shù)H=rand<r,u>maviter=100;%最大迭代次數(shù)foriter=1:maviterW=W.*<<V./<W*H>>*H'>;%注意這里的三個公式和文中的是對應(yīng)的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>;%產(chǎn)生全矩陣D=zeros<size,size>;BW=zeros<size,size>;Block_dct1=zeros<block,block>;%產(chǎn)生水印,并顯示水印信息;subplot<3,2,1>;Info='dcf';InfoStrSize=length<Info>;%將字符串轉(zhuǎn)換為位數(shù)組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;%算出每格圖像的坐標(biāo)〔x,y,block=8,8*8的圖像小格
block_dct1=H<x:x+block-1,y:y+block-1>;%取原始圖像小格中的像素點(diǎn)到block_dct1矩陣中。block_dct1=dct2<block_dct1>;%對二維數(shù)組進(jìn)行離散余弦變換。dct是有損壓縮如jpeg使用的技術(shù)。Dct是可逆的運(yùn)算
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;%算出每格圖像的坐標(biāo)〔x,y,block=8,8*8的圖像小格
block_dct1=I<x:x+block-1,y:y+block-1>;%取原始圖像小格中的像素點(diǎn)到block_dct1矩陣中。
block_dct2=D<x:x+block-1,y:y+block-1>;Block_dct1=dct2<block_dct1>;%對二維數(shù)組進(jìn)行離散余弦變換。dct是有損壓縮如jpeg使用的技術(shù)。Dct是可逆的運(yùn)算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<'提取出的水印'>;%
%攻擊實(shí)驗
disp<'inputyouchoiceaccordingtothefollowing
imageprocessingoperation:'>;
disp<'0--exit'>;
disp<'1--smoothingpatterns'>;
%添加噪音
disp<'2--addinguniormnoise添加噪音'>;
%濾波
disp<'3--addingfilter[1010]濾波'>;
%剪切
disp<'4--cuttingpartoftheimage剪切'>;
%壓縮
disp<'5--10qualityJPEGcompressing壓縮'>;
%旋轉(zhuǎn)45度
disp<'6--rotate45旋轉(zhuǎn)'>;
%
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旋轉(zhuǎn)'>;
watemark_detect<WImage6,Y1,I0,waterMark1>;
case0
break;
otherwise
error<'youhaveavalidvalue<您的輸入錯誤>'>;
end
d=input<'pleaseinputyouchoice<請輸入您的選擇>:'>;
end
%結(jié)束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>;%根據(jù)密鑰樹分解[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的規(guī)格r=100;%設(shè)置分解矩陣的秩W=rand<i,r>%初始化WH,為非負(fù)數(shù)H=rand<r,u>maviter=100;%最大迭代次數(shù)foriter=1:maviterW=W.*<<V./<W*H>>*H'>;%注意這里的三個公式和文中的是對應(yīng)的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
%
%重構(gòu)圖像,得到嵌入水印的圖象
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<'對嵌入水印的圖像的攻擊實(shí)驗,請輸入選擇項:'>;disp<'1--添加白噪聲'>;disp<'2--高斯低通濾波'>;disp<'3--JPEG壓縮'>;disp<'4--圖像剪切'>;disp<'5--旋轉(zhuǎn)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<'經(jīng)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<'旋轉(zhuǎn)10度后圖像'>;figure<1>;M1=WImage6cl;otherwisedisp<'你輸入的是無效數(shù)字,圖像未受攻擊,將直接檢測水印'>;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>;%防止出現(xiàn)的那些小數(shù),影響10-2進(jìn)制的轉(zhuǎn)換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<'原水印圖像與提取水印圖像互相關(guān)系數(shù)'>NC=nc<mark1,mark>,數(shù)字水印的概念數(shù)字水印技術(shù)是指用信號處理的方法在數(shù)字化的多媒體數(shù)據(jù)中嵌入隱蔽的標(biāo)記,這種標(biāo)記通常是不可見的,只有通過專用的檢測器或閱讀器才能提取。通過這些隱藏在多媒體內(nèi)容中的信息,可以確定內(nèi)容的創(chuàng)建者,判斷內(nèi)容的真實(shí)完整性。數(shù)字水印技術(shù)需要增加魯棒性要求,以對抗各種可能的攻擊。數(shù)字水印的基本特征隱藏性:數(shù)字產(chǎn)品加入數(shù)字水印后,應(yīng)不會引起數(shù)字作品的明顯質(zhì)降,并不易被接收者察覺。安全可靠性:水印體制要商業(yè)應(yīng)用,其算法必須公開。算法的安全性完全取決于密鑰,而不是對算法進(jìn)行保密。另外,數(shù)字水印應(yīng)能對抗非法的探測和解碼,面對非法的攻擊也能以極低的差錯率識別作品,同時數(shù)字水印應(yīng)很難被他人復(fù)制和偽造。魯棒性:能在多種無意或有意的信號處理過程后,仍能保持水印的完整性和鑒別的準(zhǔn)確性。對數(shù)字水印來說,其隱藏水印的魯棒性在實(shí)際應(yīng)用中是有由兩部分組成:〔1在整體數(shù)據(jù)出現(xiàn)失真后,其內(nèi)嵌水印仍存在;〔2在數(shù)據(jù)失真后,水印探測算法仍能準(zhǔn)確探測出水印的存在。計算復(fù)雜度:不同應(yīng)用對水印嵌入算法和提取算法的計算復(fù)雜度有不同的要求。數(shù)字水印的應(yīng)用領(lǐng)域隨著數(shù)字水印技術(shù)的發(fā)展,數(shù)字水印的應(yīng)用領(lǐng)域也得到了擴(kuò)展,數(shù)字水印的基本應(yīng)用領(lǐng)域是版權(quán)保護(hù)、隱藏標(biāo)識、認(rèn)證和安全不可見通信。當(dāng)數(shù)字水印應(yīng)用于版權(quán)保護(hù)時,潛在的應(yīng)用市場在于電子商務(wù)、在線或離線地分發(fā)多媒體內(nèi)容以及大規(guī)模的廣播服務(wù)。數(shù)字水印用于隱藏標(biāo)識時,可在醫(yī)學(xué)、制圖、數(shù)字成像、數(shù)字圖像監(jiān)控、多媒體索引和基于內(nèi)容的檢索等領(lǐng)域得到應(yīng)用。數(shù)字水印的認(rèn)證方面主要ID卡、信用卡、ATM卡等上面數(shù)字水印的安全不可見通信將在國防和情報部門得到廣泛的應(yīng)用。多媒體技術(shù)的飛速發(fā)展和Internet的普及帶來了一系列政治、經(jīng)濟(jì)、軍事和文化問題,產(chǎn)生了許多新的研究熱點(diǎn),以下幾個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理招生業(yè)務(wù)合同
- 投資監(jiān)測委托合同
- 戶外運(yùn)動木地板購銷協(xié)議
- 酒樓合作經(jīng)營合同
- 信用社借款合同樣式
- 房產(chǎn)買賣合同格式模板
- 涵管生產(chǎn)廠家采購合同
- 購銷合同國際旅游合作發(fā)展
- 預(yù)售房屋買賣合同條款
- 全面月嫂合同范本
- 2024年金融工作會議
- 2024年人教版八年級生物上冊期末考試卷(附答案)
- 開發(fā)思路方案
- 平面的投影完整版本
- 第八單元試題-2024-2025學(xué)年統(tǒng)編版語文四年級上冊
- 人教版五年級上冊數(shù)學(xué)期末考試試卷含答案
- 2024年大學(xué)試題(管理類)-薪酬管理考試近5年真題集錦(頻考類試題)帶答案
- 北師大版四年級上冊書法練習(xí)指導(dǎo)-教案
- 初中道德與法治全六冊復(fù)習(xí)提綱
- 2024年中級消防員考試題庫
- 高中人教版必修一全冊歷史期末總復(fù)習(xí)重要知識點(diǎn)歸納
評論
0/150
提交評論