Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2010-05-02
帖子: 1
声望力: 0 ![]() |
![]()
请各位高人给下面一段基于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(' 提取的水印'); |
![]() |
![]() |