Arnold置乱

news2025/1/19 23:19:58

一、Arnold置乱概述

  Arnold变换是俄国数学家弗拉基米尔·阿诺德(Vladimir Igorevich Arnold)提出,Arnold将其应用在遍历理论研究中。由于Arnold本人最初对一张猫的图片进行了此种变换,因此它又被称为猫脸变换(cat映射)。Cat映射可以把图像中各像素点的位置进行置换,使其达到加密的目的,多应用在多媒体混沌加密中。

  Arnold置乱是一种数字图像处理技术,通过改变图像像素的排列顺序来产生视觉上的扭曲和变形效果。该技术主要应用于图像加密和保护,也可以用于生成艺术效果或增加图像的复杂度。

  Arnold置乱的原理基于置换群的概念。对于一个n×n的图像,可以将其视为一个由n²个像素组成的向量。Arnold置乱通过一系列置换操作来改变这些向量的排列顺序,从而产生不同的视觉效果。

  具体来说,Arnold置乱的操作是将每个像素坐标(x, y)进行置换操作,得到新的坐标(x', y')。置换操作的具体方法如下:

    x' = (ax + y) mod n y' = (bx + (a*b+1)*y) mod n

  其中,a和b是两个置乱参数,n是图像大小。上述公式可以理解为将(x, y)映射到了一个新的坐标(x', y')。通过反复进行这样的置换操作,可以将图像像素的排列顺序进行混乱,从而产生视觉上的扭曲和变形效果。

  值得注意的是,Arnold置乱是一种可逆操作,也就是说可以通过相反的操作将图像恢复为原始状态。具体来说,如果知道了置乱参数a和b以及进行置乱的迭代次数n,就可以对图像进行反向置乱操作,从而得到原始的图像。

  在实际应用中,Arnold置乱常常被用于数字水印、图像加密等领域。通过对图像进行多次Arnold置乱操作,可以使得图像的像素排列变得非常复杂和随机,从而增加了图像的安全性和保密性。同时,Arnold置乱也可以用于生成艺术效果,例如在数字艺术中用于产生视觉上的扭曲和变形效果。

二、步骤

  Arnold置乱的具体步骤如下:

  1. 选择置乱参数a和b:Arnold置乱的第一步是选择两个置乱参数a和b,这两个参数是用来控制像素排列顺序的。一般情况下,选择两个互质的正整数作为置乱参数,例如a=3,b=5。

  2. 将图像转换为矩阵:将要加密的图像转换为一个n×n的矩阵,其中n为矩阵的行数和列数。如果图像大小不是n的整数倍,则可以在图像边缘进行填充或截断操作。

  3. 进行置乱操作:对于图像矩阵中的每个像素坐标(x, y),使用下面的公式进行置乱操作:

    x' = (ax + y) mod n y' = (bx + (a*b+1)*y) mod n

    其中,(x', y')就是置乱后的像素坐标。这个过程就是将图像像素的位置进行混乱和扭曲。

  4. 重复置乱操作:对于置乱后的像素坐标(x', y'),再次使用上述公式进行置乱操作,得到新的像素坐标(x'', y'')。重复进行这样的操作,直到达到预设的置乱次数。

  5. 将置乱后的像素矩阵转换回图像:将置乱后的像素矩阵重新转换为图像,并保存加密后的图像文件。如果需要对图像进行解密,则需要进行相反的置乱操作。

三、代码实现

1.MATLAB实现置乱

 Code_01

 Code_02

2.MATLAB实现逆置乱

 Code_03

  在上面的代码中,我们首先定义了置乱参数a和b,然后加载了一张名为lena.jpg的图像,并将其转换为灰度图像。接下来,我们将灰度图像转换为一个n×n的矩阵,然后使用两重循环对每个像素进行置乱操作。在置乱操作中,我们使用了上面描述的公式进行像素坐标的计算和调换。最后,我们将置乱后的矩阵再次转换为图像,并保存到名为lena_scrambled.jpg的文件中。

四、二维Arnold置乱

二维Arnold置乱是一种将二维图像进行混沌置乱的方法,与一维Arnold置乱类似,它也是通过改变像素坐标的排列顺序来实现图像混沌化的。

二维Arnold置乱的具体步骤如下:

  1. 选择置乱参数a和b:同样,二维Arnold置乱的第一步是选择两个置乱参数a和b,这两个参数是用来控制像素排列顺序的。一般情况下,选择两个互质的正整数作为置乱参数,例如a=3,b=5。

  2. 将图像转换为矩阵:同样地,将要加密的图像转换为一个n×n的矩阵,其中n为矩阵的行数和列数。

  3. 进行置乱操作:对于图像矩阵中的每个像素坐标(x, y),使用下面的公式进行置乱操作:

    x' = (ax + y) mod n y' = (bx + (a*b+1)*y) mod n

    其中,(x', y')就是置乱后的像素坐标。这个过程就是将图像像素的位置进行混乱和扭曲。

  4. 重复置乱操作:对于置乱后的像素坐标(x', y'),再次使用上述公式进行置乱操作,得到新的像素坐标(x'', y'')。重复进行这样的操作,直到达到预设的置乱次数。

  5. 将置乱后的像素矩阵转换回图像:将置乱后的像素矩阵重新转换为图像,并保存加密后的图像文件。如果需要对图像进行解密,则需要进行相反的置乱操作。 

总之,二维Arnold置乱是一种可靠的图像混沌化方法,它可以增强图像的安全性和保密性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/925777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

24 | 紧跟时代步伐:微服务模式下API测试要怎么做?

微服务架构(Microservice Architecture) 微服务是一种架构风格。在微服务架构下,一个大型复杂软件系统不再由一个单体组成,而是由一系列相互独立的微服务组成。其中,各个微服务运行在自己的进程中,开发和部…

【pdf密码】PDF文件,无密码取消限制

PDF文件设置了限制编辑,会导致什么情况呢?比较常见的就是无法编辑、无法复制粘贴、无法打印或者打印文件清晰度差。这些都是PDF限制编辑导致的,想要编辑文件,我们就需要取消限制编辑,但是有些时候,大家可能…

静电中和设备在半导体自动化生产中起到了怎样的作用

静电中和设备在半导体自动化生产中起到了重要的作用。在半导体生产过程中,由于材料的摩擦、粉尘的飞扬、人员的移动等原因,会产生大量的静电电荷。这些静电电荷如果不得到有效的中和处理,会对生产过程和产品质量产生严重的影响。 静电中和设…

LPC1768运行threadx数组越界导致出现硬件错误死机问题的排查

移植了threadx后运行发现程序莫名跑飞,停留在 HardFaultHandler 即硬件错误异常 调试过程中发现在汇编启动文件启动后跳转main函数即刻就发生了错误异常,先排除是在操作系统运行过程中的问题,而且是硬件错误异常所以先对导致改错误的可能进行…

ENSP操作平台命令汇总一(第五课)

一 Ensp基础指令操作 1 ipconfig 查看 pc机的IP地址2 ping 连接的IP地址 3 system-view 进入系统视图4 [Huawei]interface GigabitEthernet 0/0/1 进入接口视图 过0/0/15 quit 返回上一层视图6 ctrlZ 快速返回用户视图7 [sy]sysname tedu-ntd-lswl 进入系统视…

Java --- 内部类

目录 一、什么是内部类 二、为什么需要内部类 三、内部类的分类 3.1、成员内部类 3.2、局部内部类 四、练习 一、什么是内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类(InnerClass),类B则称为外部类&#…

SQL 错误 [22007]: ERROR: invalid input syntax for type date: ““

0. 背景 PG数据库一张表有这样一个varchar类型的字段end_date,存储的值是格式化后的年月日日期如 2024-08-10 现在我需要根据当前日期与end_date的差值作为where条件过滤,我的写法 select …… from my_table_name where current_date - cast (end_date as date) >100报错…

苹果“迎难而上”,印度赚印度花,扩大产能,推动手机制造业发展

根据报道,苹果公司在由印度当地媒体 Business Today 报道的会议中表示,他们计划扩大在印度的生产产能。这也进一步显示了苹果对印度市场的重视程度。 据统计数据显示,印度已成为苹果第五大iPhone市场,其市场营收超越了法国和德国&…

React绑定antd输入框,点击清空或者确定按钮实现清空输入框内容

其实实现原理和vue的双向绑定是一样的,就是监听输入框的onChange事件,绑定value值,当输入框内容发生变化后,就重新设置这个value值。 示例代码:我这里是统一在handleCancel这个函数里面处理清空逻辑了,你们…

再写CentOS7升级OpenSSL-1.0.1U

本文在CentOS7.4以及TencentOS 2.4上测试通过。 原系统自带OpenSSL 1.0.2k-fips。 编译安装方法跟之前的没啥区别。 从官网下载1.0.1u版https://www.openssl.org/source/ 使用tar解包 tar xfz openssl-1.0.1u.tar.gz 依次执行如下: cd openssl-1.0.1u ./con…

pdf转ppt软件哪个好用?推荐一个好用的pdf转ppt软件

在日常工作和学习中,我们经常会遇到需要将PDF文件转换为PPT格式的情况。PDF格式的文件通常用于展示和保留文档的原始格式,而PPT格式则更适合用于演示和展示。为了满足这一需求,许多软件提供了PDF转PPT的功能,使我们能够方便地将PD…

成都优优聚做美团代运营还有市场吗?

成都优优聚公司是一家专注于美团代运营的企业。作为美团的第三方代运营商,公司致力于帮助商家提升线上形象,提高销售额,实现转型升级。在与美团合作的多年间,公司已积累了丰富的经验和优秀的专业团队。 作为一个代运营商&#xff…

VK0192是标准LCD显示面板/液晶显示屏驱动芯片(IC)-24SEG×8COM

产品品牌:永嘉微电/VINKA 产品型号:VK0192 封装形式:LQFP44 概述 VK0192是一个点阵式存储映射的LCD驱动器,可支持最大192点(24SEGx8COM) 的LCD屏。单片机可通过3/4线串行接口配置显示参数和发送显示数据…

恢复照片软件,记好这几个,照片恢复很简单!

“我真的很喜欢拍摄各种各样的照片,然后在电脑上进行修图。但是吧!我比较马虎,在挑选照片时经常会误删一些很好看的照片。真的很需要一款专门恢复照片的软件,想问问有什么好的推荐吗?” 无意中删除了重要的照片真的会让…

GE 8920-PS-DC安全模块

安全控制: 这个安全模块通常用于实现工业自动化系统中的安全控制功能。它可以监测各种安全参数,如机器运动、温度、压力等,以确保系统在安全范围内运行。 PLC兼容性: 通常,这种安全模块可以与可编程逻辑控制器&#x…

Cesium 使用 Entity 绘制点线面

文章目录 一、绘制点1. 第一种2. 第二种 二、绘制面三、绘制线四、移除 Entity <!--* Author: HuKang* Date: 2023-08-18 11:06:43* LastEditTime: 2023-08-25 09:16:59* LastEditors: HuKang* Description: program-c* FilePath: \global-data-display\src\views\program-c…

图像读取、显示与保存

一、图像读取 二、图像显示 namedWindow(const String &winname, int flags WINDOW_AUTOSIZE) imshow(const String &winname, InputArray mat) 三、图像保存 #include <opencv2/opencv.hpp> //the basic building blocks of the library #include <…

黑客炼成手册

一、什么是网络安全&#xff1f;什么是黑客&#xff1f; 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等…

Nature重大突破:科学家成功完成Y染色体测序,标志着人类基因组的完整解读

这张扫描电子显微镜图像显示了一对连接的Y染色体&#xff08;右&#xff09;与一对连接的X染色体相比&#xff0c;在细胞分裂前期时重复的Y染色体&#xff08;右&#xff09;小了多少。图片来源&#xff1a;BIOPHOTO ASSOCIATES/SCIENCE SOURCE 长期以来&#xff0c;Y染色体的全…

Hugo快速创建和发布网站

你应该先阅读Windows上安装Hugo的环境。 我们使用PowerShell运行下面的Hugo命令。 1 创建网站 我们在文档下面创建一个名为MyHugoSite的目录结构&#xff1a; cd Documents hugo new site MyHugoSite cd MyHugoSite提示告诉我们有关主题的获取方式、文件的添加和站点的构建。…