extract.m

来自「实现小波数字水印」· M 代码 · 共 23 行

M
23
字号
function wr=Extract(o,WLoc,N)
[CA,CH,CV,CD] = DWT2(o,'haar');
[RM CN]=size(CA);
k=0;
for i=1:RM
    for j=1:CN
        if WLoc(i,j)==1
            k=k+1;
            Range=[CH(i,j),CV(i,j),CD(i,j)];      %排序
            [Rank CLoc]=sort(Range);
            for h=1:N                             %量化
                NewRange(h)=Rank(1)+(Rank(3)-Rank(1))*(h-1)/(N-1);
            end
            Diff1=min(abs(NewRange(2:2:N)-Rank(2)*ones(1,floor(N/2))));
            Diff2=min(abs(NewRange(1:2:N)-Rank(2)*ones(1,ceil(N/2))));
            if Diff1<Diff2                        %提取
                wr(k)=0;
            else
                wr(k)=1;
            end
        end
    end
end

⌨️ 快捷键说明

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