【圖像加密】圖像處理之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個不重復的坐標點。

      當然還需要注意處理好坐標邊界問題。

       這里就不貼代碼了,大家自己寫一下。

             

加密前                               加密后



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com