1.随机打乱各行进行数字图像加密

import cv2

import numpy as np

import matplotlib.pyplot as plt

import ch

ch.set_ch()

RGB = cv2.imread(r'D:\DigitPictureProcess\hist02.PNG')

# 返回矩阵的行和列

s = RGB.shape[0]

r = np.random.choice(s, size=s, replace=False, p=None)

RGBS = RGB[r, :, :]

j = 0

f = np.arange(0, len(r))

while j <= len(r):

# find(r==j)是返回r中等于j的值的索引,可以是多个,赋值给f的第j个位置

for (i, val) in enumerate(r):

if val == j:

f[j] = i

j = j + 1

RGBE = RGBS[f, :, :]

plt.subplot(1, 2, 1)

plt.imshow(RGBS)

plt.title(u"加密后")

plt.subplot(1, 2, 2)

plt.imshow(RGBE)

plt.title(u"解密后")

plt.show()

2. 随机打乱各列进行数字图像加密

import cv2

import numpy as np

import matplotlib.pyplot as plt

import ch

ch.set_ch()

RGB = cv2.imread(r'D:\DigitPictureProcess\hist02.PNG')

# 返回矩阵的行和列

s = RGB.shape[1]

r = np.random.choice(s, size=s, replace=False, p=None)

RGBS = RGB[:, r, :]

j = 0

f = np.arange(0, len(r))

while j <= len(r):

# find(r==j)是返回r中等于j的值的索引,可以是多个,赋值给f的第j个位置

for (i, val) in enumerate(r):

if val == j:

f[j] = i

j = j + 1

RGBE = RGBS[:, f, :]

plt.subplot(1, 2, 1)

plt.imshow(RGBS)

plt.title(u"加密后")

plt.subplot(1, 2, 2)

plt.imshow(RGBE)

plt.title(u"解密后")

plt.show()

3.同时打乱各行各列进行数字图像加密

import cv2

import numpy as np

import matplotlib.pyplot as plt

import ch

ch.set_ch()

RGB = cv2.imread(r'D:\DigitPictureProcess\hist02.PNG')

# 返回矩阵的行和列

s_1 = RGB.shape[0]

r = np.random.choice(s_1, size=s_1, replace=False, p=None)

RGBS = RGB[r, :, :]

s_2 = RGB.shape[1]

c = np.random.choice(s_2, size=s_2, replace=False, p=None)

RGBSS = RGBS[:, c, :]

i = 0

f = np.arange(0, len(c))

while i <= len(c):

# find(r==j)是返回r中等于j的值的索引,可以是多个,赋值给f的第j个位置

for (k, val) in enumerate(c):

if val == i:

f[i] = k

i = i + 1

j = 0

g = np.arange(0, len(r))

RGBE = RGBSS[:, f, :]

while j <= len(r):

# find(r==j)是返回r中等于j的值的索引,可以是多个,赋值给f的第j个位置

for (k, val) in enumerate(r):

if val == j:

g[j] = k

j = j + 1

RGBEE = RGBE[g, :, :]

plt.subplot(1, 2, 1)

plt.imshow(RGBSS)

plt.title(u"加密后")

plt.subplot(1, 2, 2)

plt.imshow(RGBEE)

plt.title(u"解密后")

plt.show()

4. 随机打乱像素点进行数字图像加密

python图像加密_图像加密注释的Python实现,笔记,python相关推荐

  1. python插值算法实现_图像插值算法Opencv+python实现

    1.最近邻插值算法 在待求像素(小数)的四邻像素(整数,上下左右)中,将距离待求像素最近的邻接像素灰度值赋予待求像素.html 2.双线性插值算法 感受这个博客讲的挺详细,能够参考. 博客 双线性就是 ...

  2. python可逆加密算法_常见加密方式及Python实现

    由于计算机软件的非法复制,通信的泄密.数据安全受到威胁,所以加密在开发过程中是经常使用到的技术,在一些重要场景中都有所应用,如:登录.支付.oauth等,场景不同需要搭配不一样的签名加密算法来达到业务 ...

  3. api接口加密_接口加密如何测试?

    摘要算法: 对明文编码生成信息摘要,以防止被篡改.比如MD5使用的是Hash算法,无论多长的输入,MD5都会输出长度为128bits的一个串. 摘要算法不要秘钥,客户端和服务端采用相同的摘要算法即可针 ...

  4. VTK修炼之道25:图像基本操作_图像子块提取(特征区域提取)

    1.提取感兴趣区域 感兴趣区域(Volum of Interest,VOI)是指图像内部的一个子区域.在VTK中vtkExtractVOI类实现由用户指定的区域范围提取图像的子图像.该Filter的输 ...

  5. VTK修炼之道19:图像基本操作_图像像素值的访问与修改

    1.直接访问图像像素(索引法) #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL);#include <vtkS ...

  6. 实习二 分组密码加密_分组密码加密模式

    在分组密码中,一般所选用的密码算法都是公开的,加密过程中,只有密钥是保密的.一旦密钥固定,那么可以将加解密过程视为一个映射,例如AES算法,每加密一次,就可以视为128bit到128bit的数据映射. ...

  7. matlab图像降噪_图像超分:RealSR

    点击上方"AIWalker",选择加"星标"或"置顶"    重磅干货,第一时间送达 paper: https://csjcai.githu ...

  8. java ecb加密_各加密模式的演示(ECB,CBC) .

    对于较长的明文进行加密需要进行分块加密,但是直接加密(ecb)不容易隐藏模式,用OpenCV写了个程序论证了一下 ECB 优点就是简单,可以并行计算,不会迭代误差 缺点就是隐藏不了模式 CBC 需要初 ...

  9. 函数加密_同态加密__密码学课堂笔记

    背景 对称.公钥加密算法解密密文,得到的是明文的全部信息.但是我们希望能够对密文的访问附加特殊的要求,使访问者只得到明文的一个函数值,而不会泄露明文. FE的核心要求:对明文的灵活访问 FE密钥:基于 ...

  10. win10文件夹加密_文件加密精灵,保护你的隐私!

    官方介绍: 文件加密精灵是一款使用方便,安全可靠的文件加密利器.电脑上的任何文件都能做加密处理,有效的保证你的隐私. 主要功能: 文件加密 .文件夹加密 .软件加密(程序锁.软件锁).文件夹伪装.文件 ...

最新文章

  1. java jvm性能调优_java jvm性能优化
  2. 矩阵特征值与行列式、迹的关系
  3. Android activity 参数传递
  4. java(6)——+号和++号--号
  5. linux系统用户组管理
  6. 《高性能mysql》读书笔记一
  7. 快讯:Oracle 19c 新特性及官方文档抢鲜下载
  8. TensorFlow学习笔记(一)——入门资源整理
  9. 安卓studio没有java.xml_Android文件(Java和XML)被奇怪的XML替换
  10. 高考新生,天津独立院校转设:南开大学滨海学院转设并入南大本部
  11. 视频会议中的AEC、AGC、ANS是什么?
  12. TFS映射关系出错的几种
  13. 英特尔AI大会:新版AI芯片
  14. 作为学生,我是怎么半年赚到人生第一个三十万的
  15. SEO站群优化排名用哪里的服务器比较好
  16. 微信浏览器、手机版浏览器、pc版浏览器网站的缓存怎么清理? 比较好的三点解决方案
  17. STM32通定时器时间设置步骤和计算公式方法寄存器值
  18. windows环境下将yolo-fatest的caffe模型转化为wk模型
  19. QT开发一款MD5校验工具
  20. adams功能区不显示_基于ADAMS对初始角和相位角修改模拟力矩波动

热门文章

  1. 网易云课堂 oracle,网易云课堂DBA学习笔记 (一) 数据库基础
  2. Silvaco 安装问题
  3. 周遭心理学的应用-什么是心理学?
  4. C++课程设计--人民币大小写转换器(MFC)
  5. 5G系统中BBU与RRU之间前传接口(CPRI)带宽计算
  6. matlab 三维 作图 坐标轴_这张图(不全),想利用matlab画一张三维图,X Y z 轴分别为经度 纬度 频率,这...
  7. Qt实战案例(18)——Qt位置相关函数汇总实例
  8. jQuery 倒计时插件
  9. 设备划分冲突域和广播域
  10. VirtualBox Share Folder配置