利用Python+OpenCV与Xor完成图片加密

2021-01-08 10:18:08 浏览数 (1)

参考链接: Python中的numpy.bitwise_xor

一、背景 

重啃OpenCV的过程中发现了一个有趣的Demo,通过 异或(xor)对图片进行加解密 。 

突然想起了多年前学习C 的时候学到的一个奇技淫巧:不需要中间变量,利用xor完成交换两个变量值。 

大概就是这样:  

然后再次去了解了一下xor在计算机中多方面的应用,这里暂且不表。 

二、实现代码 

按c 进行加/解密,esc键退出 

import numpy as np

import cv2 as cv

org = cv.imread('apple.jpg', 0)

mask = np.random.randint(0, 256,size=org.shape[0:2],dtype=np.uint8)

while True:

    cv.imshow('org', org)

    k = cv.waitKey()

    if k == ord('c'):

        org = cv.bitwise_xor(org, mask)

    if k == 27:

        break

cv.destroyAllWindows()

三、效果 

原始图像 

 2. 按C加密  3. 按C解密

0 人点赞