openCV简单加密及解密图像
通过按位异或运算可以实现图片的加密和解密,过程如下:
先将读取到的原始图像与密钥图像进行按位异或,可以实现加密;将加密后的 图像与密钥图像再按位异或,可以实现解密。
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) #加密图像,是由明文图像lena和密钥图像key通过按位异或运算得到
decryption = cv2.bitwise_xor(encryption,key) #解密图像,由加密图像encryption和密钥图像key通过按位异或得到
cv2.imshow("lena",lena) #显示图像
cv2.imshow("key",key)
cv2.imshow("encryption",encryption)
cv2.imshow("decryption",decryption)
cv2.waitKey()
cv2.destroyAllWindows()