![]() |
请高人给一段基于DCT的图像水印代码注解
请各位高人给下面一段基于DCT的水印嵌入和提取代码作一下注解。由于我是新手,所以请你详细一点。非常感谢。还有,水印是怎么嵌入的,嵌入到哪个位置等问题也请你帮我回答一下。不胜感激。
%嵌入水印 for p=1:N for q=1:N x=(p-1)*block+1; y=(q-1)*block+1; block_dct=trueImage(x:x+block-1,y:y+block-1); block_dct=dct2(block_dct); if waterMark(p,q)==0 a=-1; else a=1; end block_dct=block_dct*(1+a*0.03); block_dct=idct2(block_dct); I(x:x+block-1,y:y+block-1)=block_dct; end end subplot(2,2,4); imshow(I,[]); title('嵌入水印图像'); %水印提取程序2 M=512; N=64; block=8; for p=1:N for q=1:N x=(p-1)*block+1; y=(q-1)*block+1; BLOCK1=I(x:x+block-1,y:y+block-1); BLOCK2=trueImage(x:x+block-1,y:y+block-1); BLOCK1=idct2(BLOCK1); BLOCK2=idct2(BLOCK2); a=BLOCK1(1,1)/BLOCK2(1,1)-1; if a<0 W(p,q)=0; else W(p,q)=1; end end end figure(2); imshow(W);title(' 提取的水印'); |
所有时间均为北京时间。现在的时间是 15:08。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.