⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 embed.m

📁 实现小波数字水印
💻 M
字号:
function [WLoc,CA,CH,CV,CD]=Embed(o,w,N)
[CA,CH,CV,CD] = DWT2(o,'haar');
[RM CN]=size(CA);
WLoc=zeros(RM,CN); 
L=length(w);
k=0;
for i=1:RM
    for j=1:CN
        Range=[CH(i,j),CV(i,j),CD(i,j)];        %排序
        [Rank CLoc]=sort(Range);
        if k<L
            if Rank(3)-Rank(1)>4                %选择嵌入位置
                WLoc(i,j)=1;                    %生成位置秘钥
                k=k+1;
                for h=1:N                       %量化数组
                    NewRange(h)=Rank(1)+(Rank(3)-Rank(1))*(h-1)/(N-1);
                end
                if w(k)==0                      %嵌入
                    Diff=abs(NewRange(2:2:N)-Rank(2)*ones(1,floor(N/2)));
                    [Rank Loc]=sort(Diff);
                    if CLoc(2)==1
                        CH(i,j)=NewRange(2*Loc(1));
                    elseif CLoc(2)==2
                        CV(i,j)=NewRange(2*Loc(1));
                    else
                        CD(i,j)=NewRange(2*Loc(1));
                    end
                else
                    Diff=abs(NewRange(1:2:N)-Rank(2)*ones(1,ceil(N/2)));
                    [Rank Loc]=sort(Diff);
                    if CLoc(2)==1
                        CH(i,j)=NewRange(2*Loc(1)-1);
                    elseif CLoc(2)==2
                        CV(i,j)=NewRange(2*Loc(1)-1);
                    else
                        CD(i,j)=NewRange(2*Loc(1)-1);
                    end
                end
            end
        end
    end
end

⌨️ 快捷键说明

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