利用图像扩充,实现对不等长宽图片的Arnold算法加密还原

该博客介绍了使用MATLAB进行图像处理,通过矩阵操作实现图像的加密和解密。首先读取图像并转为灰度,然后根据图像尺寸创建填充矩阵,进行图像的扩展。接着运用置乱算法对图像进行加密,最后展示加密和解密后的图像效果。文章展示了图像处理中的矩阵运算在信息安全领域的应用。
摘要由CSDN通过智能技术生成
clear all;close all;clc;

src=imread('shu.png');
src=rgb2gray(src)
figure;
imshow(src,[]) 
[s_h s_w]=size(src);

if(s_h>s_w)
   max=s_h;
   B=ones(max,max-s_w)*125;
   img=cat(2,src,B);
else
   max=s_w;
   B=ones(max-s_h,max)*125;
   img=cat(1,src,B);
end
[h w]=size(img);

%置乱与复原的共同参数
n=50;
a=5;b=6;
N=h;

%置乱
imgn=zeros(max,max);
for i=1:n
    for y=1:h
        for x=1:w
            xx=mod((x-1)+b*(y-1),N)+1;
            yy=mod(a*(x-1)+(a*b+1)*(y-1),N)+1;
            imgn(yy,xx)=img(y,x);
        end
    end
    img=imgn;
end
figure;
imgs=imcrop(imgn,[0,0,s_w,s_h])
imshow(imgs,[])

%复原
img=imgn;
for i=1:n
    for y=1:h
        for x=1:w
            xx=mod((a*b+1)*(x-1)-b*(y-1),N)+1;
            yy=mod(-a*(x-1)+(y-1),N)+1  ;
            imgn(yy,xx)=img(y,x);
        end
    end
    img=imgn;
end
figure
imgn=imcrop(imgn,[0,0,s_w,s_h])
imshow(imgn,[])

在这里插入图片描述
** 原图**
在这里插入图片描述
加密图
在这里插入图片描述
还原图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值