图像处理之Logistic混沌置乱加密

前言:本文原发表在新浪博客http://blog.sina.com.cn/s/blog_b27f71160101h5gi.html,现新浪博客将其搬家至CSDN,原新浪博客停止更新。

①申请搬家后,迟迟未能收到申请搬家的码

②再熟悉一下算法

③联系键盘打字

基于以上三点,遂将博文重新敲一遍。

Logistic混沌置乱加密:

这里再根据Logistic混沌进行另一种置乱:位置置乱。

什么是位置置乱,顾名思义就是把图像中某一像素点的位置,移动到另一目的点。我们知道这个目的点当然是越随机越好。这个过程,所有像素的灰度值都没有改变,只是进行了位置的置乱,所以其直方图不会发生改变。下面我们就来进行位置置乱。

如上面讲的一样:图像处理之Logistic混沌序列加密假如一幅M*N大小的图片,我们Logistic迭代了M*N次,得到M*N个(0,1)之间的浮点数序列(记做序列A),将序列A中的每个元素乘以M*N,也就是说将A扩展到了(0,M*N)的浮点数了,然后我们对其取整数得到(0,M*N)之间的整数序列B,好的,貌似很多工作都做完了,下面就可以进行加密了。

我们要用这个序列来产生随机坐标(也就是目的点),因此将B中每一个元素B(i)(i=1,2,…,M*N),随机坐标表示为F(x,y)(x:行 y:列):

      列坐标:y=B(i)/N;

      行坐标:x=B(i)%N;

这样,我们就得到了M*N个随机坐标点,真相大白了。待加密图像中的第一个点的灰度值搬移到第一个随机坐标中的,一次类推,当所有灰度都经过移动之后,置乱结束,便完成了一次置乱加密。

如果你仔细读这篇文章并想了,你会觉得存在一个问题:按道理说这(0,M*N)个值肯定是没有重复的,但是由于计算机精度和类型转化,所以肯定存在重复的值,也就是随机坐标点存在重复的!!!这肯定是不行的,那么怎么避免呢?我们一般这样来处理:在迭代过程中,每迭代一次,产生一个随机坐标点,判断这个坐标点有没有被占用,若没有则打一个占用标志,若已被占用,则放弃该点继续迭代,直到找到没有没占用的坐标点,如此下去,直到找到M*N个不重复的坐标点。

      当然还需要注意处理好坐标边界问题。

这里就不贴代码了,大家自己写一下。

 
      

加密前                               加密后

时间: 2024-10-09 14:49:09

图像处理之Logistic混沌置乱加密的相关文章

图像处理之Logistic混沌序列加密

前言:本文原发表在新浪博客http://blog.sina.com.cn/s/blog_b27f71160101h5bm.html,现新浪博客将其搬家至CSDN,原新浪博客停止更新. ①申请搬家后,迟迟未能收到申请搬家的码 ②再熟悉一下算法 ③联系键盘打字 基于以上三点,遂将博文重新敲一遍. Logistic混沌置乱,先不说有多复杂,其实很简单. Logistic函数是源于一个人口统计的动力学系统,其系统方程形式如下:  X(k+1) = u * X(k) * [1 - X(k)],(k=0,1

图像处理之约瑟夫置乱加密

前言:本文原发表在新浪博客http://blog.sina.com.cn/s/blog_b27f71160101h5hb.html,现新浪博客将其搬家至CSDN,原新浪博客停止更新. ①申请搬家后,迟迟未能收到申请搬家的码 ②再熟悉一下算法 ③联系键盘打字 基于以上三点,遂将博文重新敲一遍. 约瑟夫置乱加密 如果看了前两篇博客的朋友都会知道这个思路,如果没有看,那么请先看这里: ①图像处理之Logistic混沌序列加密 ②图像处理之Logistic混沌置乱加密 如果你看了,那么好极了,下面我们利

混沌方法的数字图像加密

Abstract:目前混沌系统与加密技术相结合是现如今最热门的一个课题,虽然有大量的加密算法面世,但是这些加密算法并不成熟,仍然需要进一步的研究.本文采用像素位置置乱变换和像素值替代变换相结合的加密思想,设计出一种基于混沌的数字图像加密算法.引入了整数域上的逆仿射变换,算法中采用二维 logistic 混沌映射相结合的方法,生成多组混沌序列,像素置乱变换与灰度值替换都由这些混沌序列所控制.多混沌序列产生的密钥空间大于单一的混沌序列所产生的密钥空间,因此本文研究的算法加密强度很高. 1. 虫口模型

混沌数学之二维logistic模型

上一节讲了logistic混沌模型,这一节对其扩充一下讲二维 Logistic映射.它起着从一维到高维的衔接作用,对二维映射中混沌现象的研究有助于认识和预测更复杂的高维动力系统的性态.通过构造一次藕合和二次祸合的二维Logistic映射研究了二维Logistic映射通向混沌的道路,分析了其分形结构和吸引盆的性质,指出选择不同的控制参数,二维映射可分别按Feigenbaum途径等走向混沌,并且指出在控制参数空间中的较大的区域. 二维滞后Logistic映射的数学方程为: x(n+1)=y(n);y

自己动手用C++写的图像处理软件(不调用外部包)

说到图像处理软件你会想到什么?Photoshop?CorelDRAW?美图秀秀?还是ACDSee的图像编辑模块? 说到实现数字图像处理算法,你又会想到什么?Matlab?OpenCV? 能不能自己动手用C++写一个小型的图像处理软件,实现一些图像处理算法,而不调用任何外部的包?这个可以有! 多年以前,甚至是主页君还在读书的时候,曾经尝试在VC++ 6.0中编写了最初版本的MagicHouse(一款小型的图像处理软件).后来当我写了我的第一本图像处理算法书时,我用VC++ 2005更新了它.再后来

图片加密

一.图片概述 每种图片都有自己的文件格式和压缩方式:文件格式主要由文件头和文件域组成.压缩方式有很多种如PNG格式的图片采用调色板或者行程编码方式的进行压缩.PNG采用无损压缩,jpg则采用有损压缩的方式进行压缩等等. 二.图像加密种类 1.置乱加密:有RGB平移置乱.HENON置乱.混沌置乱等; 2.灰度加密:DES加密.HILL加密.LOGISTIC加密.ECA加密等; 3.混合加密:复合混沌加密.baker加密.位平面加密等; 4.频域加密:DCT加密.HAAR加密等; 这些加密算法有的在

混沌数学之Arnold模型

相关软件混沌数学之离散点集图形DEMO 相关代码: class ArnoldEquation : public DiscreteEquation { public: ArnoldEquation() { m_StartX = 0.25f; m_StartY = 0.25f; } void IterateValue(float x, float y, float& outX, float& outY) const { outX = fmodf(x + y, 1.0f); outY = fmo

混沌分形之逻辑斯蒂(Logistic)映射系统

前几天,有个同事看到我生成的一幅逻辑斯蒂分岔图像后,问我:“这是咪咪吗?”我回答:“淫者见淫.”好吧,这里将生成几种分岔映射图形,包括逻辑斯蒂映射系统,正弦映射系统和曼德勃罗映射系统.实际上这几种图形算不上分形,只不过它与我写的其他分形对象使用相同的基类,所以也将其列入混沌分形的范畴. 关于基类FractalEquation的定义及相关软件见:混沌与分形 (1)逻辑斯蒂映射系统 // 逻辑斯蒂映射系统 class LogisticMap : public FractalEquation { pu

混沌数学之logistic模型

logistic回归又称logistic回归分析,主要在流行病学中应用较多,比较常用的情形是探索某疾病的危险因素,根据危险因素预测某疾病发生的概率. 相关DEMO参见:混沌数学之离散点集图形DEMO logistic的用途: 一.寻找危险因素,正如上面所说的寻找某一疾病的危险因素等. 二.预测,如果已经建立了logistic回归模型,则可以根据模型,预测在不同的自变量情况下,发生某病或某种情况的概率有多大. 三.判别,实际上跟预测有些类似,也是根据logistic模型,判断某人属于某病或属于某种