wembed.m

来自「用matlab实现的DCT水印处理」· M 代码 · 共 23 行

M
23
字号
function imw=wembed(im,w,delta,numblk)
%  分块 DCT 和 量化的盲水印嵌入
%------------------------NOTES---------------------------------------------
% Written by : zj  - 01/05/07
% Contact    : zxxyj0506@sina.com
% CpoyRight@2007-2010
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fun1=@dct2;
im_dct=blkproc(im,[8 8],fun1);
for k=1:numblk
    for p=1:numblk
         x=(k-1)*8+1; y=(p-1)*8+1;
         cur_dct00=im_dct(x,y);
         akp=round(cur_dct00/delta);   % akp 是量化值
         if mod(akp+w(k,p),2)==1
             im_dct(x,y)=(akp-1/2)*delta;
         else
             im_dct(x,y)=(akp+1/2)*delta;
         end
    end
end
fun2=@idct2;
imw=blkproc(im_dct,[8 8],fun2);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?