我是靠谱客的博主 笨笨柠檬,这篇文章主要介绍图像加密——matlab实现Arnold置乱算法及矩阵幂的求解1、Arnold置乱和逆置乱的数学公式2、图像复原的两种形式3、matlab实现置乱与逆置乱4、矩阵求幂,现在分享给大家,希望可以做个参考。
文章目录
- 1、Arnold置乱和逆置乱的数学公式
- 2、图像复原的两种形式
- 通过逆矩阵
- 周期性来求变换次数
- 3、matlab实现置乱与逆置乱
- 4、矩阵求幂
1、Arnold置乱和逆置乱的数学公式

xn,yn表示像素在原图像中的坐标,xn+1,yn+1表示变换后的像素坐标,a,b为参数,均为正整数且都小于N,变换矩阵行列式满足∣A∣=1,则可逆。因此如下为逆置乱公式:

由此可以看到,只要知道参数ab且知道变换次数的情况下,才能让置乱后的图像复原。
2、图像复原的两种形式
通过逆矩阵
周期性来求变换次数
逆置乱可以让图像复原,除了采用逆置乱复原外还有一种方式,利用周期性,当矩阵进行一定次数变换的时候,会恢复原图,那需要变换多少次才能恢复原图呢?
常规图像的变换次数:

如果遇到非常规尺寸的图像,可以采用如下伪代码进行求解变换次数:
其中A和N是已知的,A是变换矩阵,N是图像尺寸,即可求解。

3、matlab实现置乱与逆置乱
clear all;
close all;
clc;
img=imread('256.bmp');%读取图片,根据Arnold变换的条件,图像必须是正方形
mysize=size(img);%当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数。
if numel(mysize)>2%如果输入是彩色图像
img=rgb2gray(img); %将彩色到灰度图像的转换
fprintf("图像为彩色图n"); %其中r或者n表示换行
end
imshow(img,[])
title('彩色原图的灰度图');
figure(2)
imhist(img) %原图的直方图统计
%如果输入的不是正方形图像,则打印如下
[h,w]=size(img);
if h>w
img = imresize(img, [w w]);
fprintf("图像长宽不一样,图像可能失真r");
end
if h<w
img = imresize(img, [h h]);
fprintf("图像长宽不一样,图像可能失真");
end
[h,w]=size(img);
%置乱与逆置乱必须采用共同参数的时候,就相当于密码,才能解密,让图像复原
n=10;%迭代次数
a=1;b=1;
N=h;%N代表图像宽高,宽高要一样
%置乱操作
imgnnn=zeros(h,w);
for i=1:n
for y=1:h
for x=1:w
xx=mod((x-1)+b*(y-1),N)+1; %mod取余操作,(a,b)就是a除以b的余数
yy=mod(a*(x-1)+(a*b+1)*(y-1),N)+1;
imgnnn(yy,xx)=img(y,x);
end
end
img=imgnnn;
end
imgnnn = uint8(imgnnn);
figure(3)
imshow(img,[])%置乱后的图片
title('置乱后的图片 a=1;b=1,n=10');
imwrite (imgnnn,'置乱后的图片.bmp'); %生成图像保存功能
%逆置乱复原
img2=imread('置乱后的图片.bmp');%读取置乱图片
for i=1:n
for y=1:h
for x=1:w
xx=mod((a*b+1)*(x-1)-b*(y-1),N)+1;%matlab索引中不能是0,要从1开始
yy=mod(-a*(x-1)+(y-1),N)+1 ;
imgnnn(yy,xx)=img2(y,x);
end
end
img2=imgnnn;
end
imgnnn = uint8(imgnnn);
figure(4)
imshow(imgnnn,[])
title('逆置乱的复原图片');
imwrite(imgnnn,'逆置乱的复原图片.bmp');%生成图像保存功能

4、矩阵求幂
由于变换的次数一般很多,比如说变换150次,求一个矩阵的150次方很麻烦,但是后续若想简化计算,直接进行150次方的运算,就需要提前把矩阵求出,方法如下:
在matlab的命令行输入A矩阵,然后给定最终的变换矩阵B,及变换次数150,即可得到想要的矩阵。

最后
以上就是笨笨柠檬最近收集整理的关于图像加密——matlab实现Arnold置乱算法及矩阵幂的求解1、Arnold置乱和逆置乱的数学公式2、图像复原的两种形式3、matlab实现置乱与逆置乱4、矩阵求幂的全部内容,更多相关图像加密——matlab实现Arnold置乱算法及矩阵幂内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复