一种基于Arnold变换的数字图像加密算法(Matlab代码实现)

简介: 一种基于Arnold变换的数字图像加密算法(Matlab代码实现)

💥1 概述

Arnold变换因其具有周期性,在图像加密方面得到了广泛的应用.但在解密过程中,若要利用其周期性,则显得很费时,因此提出了一种新的Arnold反变换算法.该算法通过求解方程组来求得反变换.在此基础上,把二维Arnold变换用在正方形图像的情形推广到一般的矩形图像,即图像矩阵不是方阵的情况,扩大了其在图像加密中的应用.同时,从理论上又把二维Arnold反变换推广到了m维Arnold反变换.  


📚2 运行结果

🎉3 参考文献

[1]卢振泰,黎罗罗.一种新的衡量图像置乱程度的方法[J].中山大学学报(自然科学版),2005(S1):126-129.

👨‍💻4 Matlab代码

主函数部分代码:

%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%arnold加解密过程仿真程序%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%% 
clear all;close all;clc;
I=imread('lena256.png');
I=imresize(I,[256,256]);
%要置乱的次数
num=50;
figure(1);
subplot(1,4,1);imshow(I,[]);title('原图');
subplot(1,4,2);imshow(I(:,:,1),[]);title('R');
subplot(1,4,3);imshow(I(:,:,2),[]);title('G');
subplot(1,4,4);imshow(I(:,:,3),[]);title('B');
I1(:,:,1)=uint8(arnold(I(:,:,1),num));%%%%%%%%%%%原调用函数
I1(:,:,2)=uint8(arnold(I(:,:,2),num));
I1(:,:,3)=uint8(arnold(I(:,:,3),num));
figure(2);
subplot(1,4,1);imshow(I1,[]);title(['原图' num2str(num)  '次置乱']);
subplot(1,4,2);imshow(I1(:,:,1),[]);title(['R分量图' num2str(num)  '次置乱']);
subplot(1,4,3);imshow(I1(:,:,2),[]);title(['G分量图' num2str(num)  '次置乱']);
subplot(1,4,4);imshow(I1(:,:,3),[]);title(['B分量图' num2str(num)  '次置乱']);
C(:,:,1)=I1(:,:,1);
C(:,:,2)=I1(:,:,2);
C(:,:,3)=I1(:,:,3);
imwrite(C,'加密图.bmp');
figure(5);
% subplot(3,4,5);imhist(C);title('彩图扩散直方图');
subplot(2,3,1);imhist(C(:,:,1));title([num2str(num) '次置乱后R分量直方图']);
subplot(2,3,2);imhist(C(:,:,2));title([num2str(num) '次置乱后G分量直方图']);
subplot(2,3,3);imhist(C(:,:,3));title([num2str(num) '次置乱后B分量直方图']);
% subplot(3,4,9);imhist(I1);title('原彩图扩散直方图');
subplot(2,3,4);imhist(I(:,:,1));title('原图R分量直方图');
subplot(2,3,5);imhist(I(:,:,2));title('原图G分量直方图');
subplot(2,3,6);imhist(I(:,:,3));title('原图B分量直方图');
figure(6);
subplot(1,2,2);
histogram(C(:,:,1),512,'Facecolor','r','FaceAlpha',1,'Edgecolor','none');title([num2str(num) '次置乱后RGB分量直方图']);
hold on
histogram(C(:,:,2),512,'Facecolor','g','FaceAlpha',1,'Edgecolor','none');
hold on
histogram(C(:,:,3),512,'Facecolor','b','FaceAlpha',1,'Edgecolor','none');
box off;
subplot(1,2,1);
histogram(I(:,:,1),512,'Facecolor','r','FaceAlpha',1,'Edgecolor','none');title('原图RGB分量直方图');
hold on
histogram(I(:,:,2),512,'Facecolor','g','FaceAlpha',1,'Edgecolor','none');
hold on
histogram(I(:,:,3),512,'Facecolor','b','FaceAlpha',1,'Edgecolor','none');
box off;
I2(:,:,1)=uint8(iarnold(C(:,:,1),num));
I2(:,:,2)=uint8(iarnold(C(:,:,2),num));
I2(:,:,3)=uint8(iarnold(C(:,:,3),num));
imwrite(I2,'解密图.bmp');
figure(4);
subplot(1,4,1);imshow(I2,[]);title(['解密' num2str(num)  '次图像']);
subplot(1,4,2);imshow(I2(:,:,1),[]);title(['解密' num2str(num)  '次R分量图像']);
subplot(1,4,3);imshow(I2(:,:,2),[]);title(['解密' num2str(num)  '次G分量图像']);
subplot(1,4,4);imshow(I2(:,:,3),[]);title(['解密' num2str(num)  '次B分量图像']);
相关文章
|
8月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
730 0
|
9月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
375 3
|
8月前
|
存储 JSON 安全
加密和解密函数的具体实现代码
加密和解密函数的具体实现代码
1178 136
|
8月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
351 8
|
8月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
410 8
|
8月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
8月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
9月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
579 2
|
8月前
|
机器学习/深度学习 数据采集 负载均衡
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
383 0
|
8月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
320 0