今天给大家带来的是图像加密解密算法的优化
这是我的设计思路
import cv2
import numpy as np
aaa=cv2.imread(“xxx.jpg”,0)
//这里xxx是路径下图片名字,格式你随意好了哈哈哈
r,c=aaa.shape
//通过shape函数读取图像的宽度高度
key=np.random.randint(0,256,size=[r,c],dtype=np.uint8)
//生成一个随机图像作为key
encryption=cv2.bitwise_xor(aaa,key)
//通过异或函数加密
decryption=cv2.bitwise_xor(encryption,key)//解密
def resizeimg(x):
//我自己设计的函数为了压缩尺寸
y=cv2.resize(x,(r//3,c//3))
//宽度高度改为原图大小1/3
cv2.imshow(“x”,y)
//展示图片,x是窗口名
cv2.waitKey()
cv2.destroyAllWindows()
resizeimg(aaa)//调用函数
resizeimg(key)//同上
resizeimg(encryption)//同上
resizeimg(decryption)//同上
为什么要自己设计这个函数,因为有时候我们的窗口过大读取图像的时候不方便展示全部图像那就得压缩,如果像我这个要展示四张图片的怎么办,一个个加会非常麻烦,函数就是一个很好的工具
当然如果你需要导出图片的话那也可以在函数里加上imwtite导出到项目文件夹
没有注释的代码如下:
import cv2
import numpy as np
aaa=cv2.imread("xxx.jpg",0)
r,c=aaa.shape
key=np.random.randint(0,256,size=[r,c],dtype=np.uint8)
encryption=cv2.bitwise_xor(aaa,key)
decryption=cv2.bitwise_xor(encryption,key)
def resizeimg(x):
y=cv2.resize(x,(r//3,c//3))
cv2.imshow("x",y)
cv2.waitKey()
cv2.destroyAllWindows()
resizeimg(aaa)
resizeimg(key)
resizeimg(encryption)
resizeimg(decryption)