jiemi.m

来自「基于幻方加密算发的全数字全息图制作与加密与解密」· M 代码 · 共 31 行

M
31
字号
mim=InputDlg('Please in put your key:','Input you key:');
xx=length(mim{:});
mima=setstr(mima);

 mim=abs(mim{:});da=size(ff);Hx=da(1);Hy=da(2);pa=ff;
     
    for i=xx:-1:2
        ll=mim(i)-mim(i-1);
        if ll>0
            bb=magic(Hx);bb=inv(bb);pa=bb*pa;
            if mod(Hx-ll,2)==1;Hx=Hx-ll;pa=pa(1:Hx,1:Hy);
            else Hx=Hx-ll-1;pa=pa(1:Hx,1:Hy);
            end
        elseif ll<0
            bb=magic(Hy);bb=inv(bb);pa=pa*bb;lll=abs(ll);
            if mod(Hy-lll,2)==1;Hy=Hy-lll;pa=pa(1:Hx,1:Hy);
            else Hy=Hy-lll-1;pa=pa(1:Hx,1:Hy);
            end
         else  bb=magic(Hx);bb=inv(bb);pa=bb*pa;
            if mod(Hx,2)==1;pa=pa(1:Hx,1:Hy);
            else Hx=Hx-1;pa=pa(1:Hx,1:Hy);
            end
        end
end
if mod(Hx,2)==1;bb=magic(Hx);bb=inv(bb);pa=bb*pa;
   Hx=Hx-mim(1);pa=pa(1:Hx,1:Hy);
else bb=magic(Hx);bb=inv(bb);pa=bb*pa;
    Hx=Hx-mim(1)-1;pa=pa(1:Hx,1:Hy);
end
fff=mat2gray(pa);
figure;imshow(fff);

⌨️ 快捷键说明

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