图像加密——matlab实现Arnold置乱算法及矩阵幂的求解

这篇具有很好参考价值的文章主要介绍了图像加密——matlab实现Arnold置乱算法及矩阵幂的求解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、Arnold置乱和逆置乱的数学公式

图像加密——matlab实现Arnold置乱算法及矩阵幂的求解
xn,yn表示像素在原图像中的坐标,xn+1,yn+1表示变换后的像素坐标,a,b为参数,均为正整数且都小于N,变换矩阵行列式满足∣A∣=1,则可逆。因此如下为逆置乱公式:
图像加密——matlab实现Arnold置乱算法及矩阵幂的求解
由此可以看到,只要知道参数ab且知道变换次数的情况下,才能让置乱后的图像复原。

2、图像复原的两种形式

通过逆矩阵

周期性来求变换次数

逆置乱可以让图像复原,除了采用逆置乱复原外还有一种方式,利用周期性,当矩阵进行一定次数变换的时候,会恢复原图,那需要变换多少次才能恢复原图呢?

常规图像的变换次数:
图像加密——matlab实现Arnold置乱算法及矩阵幂的求解
如果遇到非常规尺寸的图像,可以采用如下伪代码进行求解变换次数:
其中A和N是已知的,A是变换矩阵,N是图像尺寸,即可求解。

图像加密——matlab实现Arnold置乱算法及矩阵幂的求解

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');%生成图像保存功能

图像加密——matlab实现Arnold置乱算法及矩阵幂的求解

4、矩阵求幂

由于变换的次数一般很多,比如说变换150次,求一个矩阵的150次方很麻烦,但是后续若想简化计算,直接进行150次方的运算,就需要提前把矩阵求出,方法如下:

在matlab的命令行输入A矩阵,然后给定最终的变换矩阵B,及变换次数150,即可得到想要的矩阵。

图像加密——matlab实现Arnold置乱算法及矩阵幂的求解文章来源地址https://www.toymoban.com/news/detail-401145.html

到了这里,关于图像加密——matlab实现Arnold置乱算法及矩阵幂的求解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 常用的几种图像置乱算法

          图像置乱算法是一种用于保护图像信息安全的技术,它可以将原始的图像信息进行加密和混淆,使得未经授权的用户无法获取到原始的图像信息。在信息安全领域中,图像置乱技术被广泛应用于图像加密、数字水印、安全传输等方面。下面是几种常用的图像置乱算法。

    2024年02月09日
    浏览(38)
  • 【信号转换】基于格拉姆矩阵(GASF/GADF)的一维信号转换图像算法【附MATLAB代码】

    GAF是利用坐标变化和格拉姆矩阵,实现将时间序列变化成为二维图像的 一种图像编码技术。GAF是采用极坐标系表示时间矩阵的,再用格拉姆矩阵对 生成的角度进行变换,这主要是因为格拉姆矩阵能够保持时间的依赖性,但是 并不能很好的区分有价值信息和高斯噪声,所以要

    2024年03月21日
    浏览(103)
  • 【图像增强】matlab实现几种典型的图像增强算法

    图像增强算法主要目的是改善图像的视觉效果或为后续处理(如图像分析、识别等)提供更好的图像质量。以下是一些常见的图像增强算法及其原理: 直方图均衡化 :通过拉伸图像的灰度直方图,使得直方图更加均匀分布,从而增加图像的对比度。 对数变换 :对数变换可以

    2024年04月10日
    浏览(42)
  • MATLAB图像倾斜校正算法实现:图像倾斜角检测及校正

    在本文中,随着多媒体技术的不断发展,数码相机,高清拍照手机等多媒体设备己经在人们的生活中占据了越来越重要的地位 ( 点击文末“阅读原文”获取完整 代码数据 ) 。 通过采用图像处理技术,可以将数码设备采 集到的文字、图片等信息转化成其他信息形势输出,例

    2024年02月04日
    浏览(85)
  • 在Python中应用RSA算法实现图像加密:基于Jupyter环境的详细步骤和示例代码

    一、引言 在当今的数字化社会中,信息安全问题备受关注。随着数字图像在生活中的应用越来越广泛,图像的安全性和隐私性也成为人们关心的焦点。如何在网络上安全地传输和存储图像已经成为一项重要的挑战。RSA(Rivest-Shamir-Adleman)算法作为一种被广泛应用的公钥密码体

    2024年02月13日
    浏览(47)
  • 数字图像去噪典型算法及matlab实现

    数字图像去噪典型算法及 matlab 实现 图像去噪是数字图像处理中的重要环节和步骤。去噪效果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由

    2024年02月03日
    浏览(41)
  • 【图像去噪】基于进化算法——自组织迁移算法(SOMA)的图像去噪研究(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 本文使

    2024年02月13日
    浏览(48)
  • MATLAB-图像加密

    图像在每个像素都有相应的颜色值,我们将像素上的颜色值进行放大,并相互重合叠加覆盖,隐藏图像原有的信息从而达到加密的效果。实际上,放大像素值,颜色值自然放大。放大的倍数越大,加密后的图像越不容易分辨出原有的信息。 如果提示错误使用imwirte,参考这个博

    2024年02月06日
    浏览(31)
  • 毕业设计-基于 MATLAB 的图像分割算法研究及实现

    目录 前言 课题背景和意义 实现技术思路 一、MATLAB 开发环境简介 二、图像分割算法设计  MATLAB代码  实现效果图样例 最后     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要

    2024年02月02日
    浏览(69)
  • 【图像加密解密】基于matlab区块链的前提下扩散图像加密解密(含直方图)【含Matlab源码 4120期】

    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。 🍎个人主页:海神之光 🏆代码获取方式: 海神之光Matlab王者学习之路—代码获取方式 ⛳️座右铭:行百里者,半于九十。 更多Matlab仿真内容点击👇 Matlab图像处理(进阶版) 路径规划

    2024年03月24日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包