一种基于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分量图像']);
相关文章
|
4天前
|
算法 数据安全/隐私保护 计算机视觉
基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
本项目展示了256×256图像通过双线性插值放大至512×512的效果,无水印展示。使用Matlab 2022a和Vivado 2019.2开发,提供完整代码及详细中文注释、操作视频。核心程序实现图像缩放,并在Matlab中验证效果。双线性插值算法通过FPGA高效实现图像缩放,确保质量。
|
2天前
|
算法
基于小波变换和峰值搜索的光谱检测matlab仿真,带GUI界面
本程序基于小波变换和峰值搜索技术,实现光谱检测的MATLAB仿真,带有GUI界面。它能够对CO2、SO2、CO和CH4四种成分的比例进行分析和提取。程序在MATLAB 2022A版本下运行,通过小波分解、特征提取和峰值检测等步骤,有效识别光谱中的关键特征点。核心代码展示了光谱数据的处理流程,包括绘制原始光谱、导数光谱及标注峰值位置,并保存结果。该方法结合了小波变换的时频分析能力和峰值检测的敏锐性,适用于复杂信号的非平稳特性分析。
|
3天前
|
算法
基于SOA海鸥优化算法的三维曲面最高点搜索matlab仿真
本程序基于海鸥优化算法(SOA)进行三维曲面最高点搜索的MATLAB仿真,输出收敛曲线和搜索结果。使用MATLAB2022A版本运行,核心代码实现种群初始化、适应度计算、交叉变异等操作。SOA模拟海鸥觅食行为,通过搜索飞行、跟随飞行和掠食飞行三种策略高效探索解空间,找到全局最优解。
|
1天前
|
传感器 算法
基于GA遗传算法的多机无源定位系统GDOP优化matlab仿真
本项目基于遗传算法(GA)优化多机无源定位系统的GDOP,使用MATLAB2022A进行仿真。通过遗传算法的选择、交叉和变异操作,迭代优化传感器配置,最小化GDOP值,提高定位精度。仿真输出包括GDOP优化结果、遗传算法收敛曲线及三维空间坐标点分布图。核心程序实现了染色体编码、适应度评估、遗传操作等关键步骤,最终展示优化后的传感器布局及其性能。
|
3天前
|
算法 数据可视化 数据安全/隐私保护
一级倒立摆平衡控制系统MATLAB仿真,可显示倒立摆平衡动画,对比极点配置,线性二次型,PID,PI及PD五种算法
本课题基于MATLAB对一级倒立摆控制系统进行升级仿真,增加了PI、PD控制器,并对比了极点配置、线性二次型、PID、PI及PD五种算法的控制效果。通过GUI界面显示倒立摆动画和控制输出曲线,展示了不同控制器在偏转角和小车位移变化上的性能差异。理论部分介绍了倒立摆系统的力学模型,包括小车和杆的动力学方程。核心程序实现了不同控制算法的选择与仿真结果的可视化。
31 15
|
2天前
|
机器学习/深度学习 算法 安全
基于深度学习的路面裂缝检测算法matlab仿真
本项目基于YOLOv2算法实现高效的路面裂缝检测,使用Matlab 2022a开发。完整程序运行效果无水印,核心代码配有详细中文注释及操作视频。通过深度学习技术,将目标检测转化为回归问题,直接预测裂缝位置和类别,大幅提升检测效率与准确性。适用于实时检测任务,确保道路安全维护。 简介涵盖了算法理论、数据集准备、网络训练及检测过程,采用Darknet-19卷积神经网络结构,结合随机梯度下降算法进行训练。
|
5天前
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a,展示了时间序列预测算法的运行效果(无水印)。核心程序包含详细中文注释和操作视频。算法采用CNN-GRU-SAM网络,结合灰狼优化(GWO),通过卷积层提取局部特征、GRU处理长期依赖、自注意力机制捕捉全局特征,最终实现复杂非线性时间序列的高效预测。
|
1月前
|
算法 数据安全/隐私保护 计算机视觉
基于Retinex算法的图像去雾matlab仿真
本项目展示了基于Retinex算法的图像去雾技术。完整程序运行效果无水印,使用Matlab2022a开发。核心代码包含详细中文注释和操作步骤视频。Retinex理论由Edwin Land提出,旨在分离图像的光照和反射分量,增强图像对比度、颜色和细节,尤其在雾天条件下表现优异,有效解决图像去雾问题。
|
1月前
|
算法 数据可视化 安全
基于DWA优化算法的机器人路径规划matlab仿真
本项目基于DWA优化算法实现机器人路径规划的MATLAB仿真,适用于动态环境下的自主导航。使用MATLAB2022A版本运行,展示路径规划和预测结果。核心代码通过散点图和轨迹图可视化路径点及预测路径。DWA算法通过定义速度空间、采样候选动作并评估其优劣(目标方向性、障碍物距离、速度一致性),实时调整机器人运动参数,确保安全避障并接近目标。
148 68
|
1月前
|
算法 数据安全/隐私保护
室内障碍物射线追踪算法matlab模拟仿真
### 简介 本项目展示了室内障碍物射线追踪算法在无线通信中的应用。通过Matlab 2022a实现,包含完整程序运行效果(无水印),支持增加发射点和室内墙壁设置。核心代码配有详细中文注释及操作视频。该算法基于几何光学原理,模拟信号在复杂室内环境中的传播路径与强度,涵盖场景建模、射线发射、传播及接收点场强计算等步骤,为无线网络规划提供重要依据。

热门文章

最新文章