Logistic 置乱彩色图像加密 算法 python

Logistic 置乱彩色图像加密 算法 python


Logistic 图像置乱加密算法,可以加密图像,算法开销小,简单易懂,但是网上没有找到python代码,我就自己写了一个。原理以及展示可以参考 这篇博文 以及这篇
解码只需要吧加密图像带入算法,即可得到解密后图像。
我优化了算法,对于彩色图像,灰度图像都适用。
以下是算法代码

# logistic encrypted for image
from PIL import Image
import numpy as np

def logic_encrypt(im, x0, mu):
    xsize, ysize = im.size
    im = np.array(im).flatten()
    num = len(im)
    
    for i in range(100):
        x0 = mu * x0 * (1-x0)
        
    E = np.zeros(num)
    E[0] = x0
    for i in range(0,num-1):
        E[i+1] = mu * E[i]* (1-E[i])
    E = np.round(E*255).astype(np.uint8)

    im = np.bitwise_xor(E,im)
    im = im.reshape(xsize,ysize,-1)
    im = np.squeeze(im)
    im = Image.fromarray(im)
    
    return im

以下是测试代码

import matplotlib.pyplot as plt

def img_hist(im):
    im = np.array(im)
    plt.hist(im.flatten(), bins = 256)
    plt.show()

im = Image.open("lena.png")
# im = im.convert("L")
x0 = 0.51
mu = 3.7

im_en = logic_encrypt(im, x0, mu)
im_de = logic_encrypt(im_en, x0, mu)
img_hist(im_en)

下面是实验结果
加密后的图像
解密图像
加密后直方图

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值