?? embed.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 + -