Matlab灰度NxN图像的Arnold加密与解密

加密部分

A=imread('~/Desktop/11.jpg');

C=imread('~/Desktop/11.jpg');

C=rgb2gray(C);

A=rgb2gray(A);

imshow(A);

for k=1:50

    

     for x=1:508

        for y=1:508

            x1=x+y;

            y1=x+2*y;

            if(x1>508)

                x1=mod(x1,508);

            end

            if(y1>508)

                y1=mod(y1,508);

            end

            if x1==0

                x1=508;

            end

            if y1==0

                y1=508;

            end

            B(x1,y1)=A(x,y);

        end

     end

     A=B;

     if(A==C)

         d=k;

     end

end

imshow(B);

imwrite(B,'111.png');

 注意 1,可以增加足够大的K值来找出周期d

在图片N=508的情况下,d=1152

2,如果倒入的是灰度图像 那么rgb2gray()函数省略

3,此处使用的矩阵为{1 1;1 2}四个元素加上循环次数k共同组成密钥

4,导出png图片用imwrite()函数 否

你可能感兴趣的:(Matlab灰度NxN图像的Arnold加密与解密)