一.原理说明
本章图像加密,用到的原理为异或:cv2.bitwise_xor
cv2.bitwise_xor() 函数用于对两个大小相同的数组(或图像)元素进行逐元素的异或操作。异或操作遵循以下逻辑:
-
如果两个输入像素的对应位有一个1和一个0,则结果为1。
-
如果两个输入像素的对应位都是1或都是0,则结果为0。
这是一个二进制运算,常用于重置或反转特定位。
简单来说,是用原图和噪声图进行异或进行编码,解码的时候,再用噪声图进行异或即可。
二.代码实战
#异或加密解密
import cv2
import numpy as np
lena=cv2.imread("lena.bmp",0)
r,c=lena.shape
key=np.random.randint(0,256,size=[r,c],dtype=np.uint8)
encryption=cv2.bitwise_xor(lena,key)
decryption=cv2.bitwise_xor(encryption,key)
cv2.imshow("lena",lena)
cv2.imshow("key
订阅专栏 解锁全文
487

被折叠的 条评论
为什么被折叠?



