6-图像的加密与解密

在对图像进行操作的过程中,会遇到要将图像进行加密解密的情况。使用 OpenCV 提供的cv2.bitwise_xor()函数实现图像的加密与解密。

1.单通道图像实例代码:

python 复制代码
import cv2
import numpy as np
# 读取 灰度图片
rose = cv2.imread('images/rose.jpg', 0)
# 获取图片的长宽
r, c = rose.shape
# 随机生成一个密钥,密钥和图片长宽一致
key = np.random.randint(0, 256, [r, c], dtype=np.uint8)
# 对图像rose和秘钥图像key进行按位异或运算加密
encryption = cv2.bitwise_xor(rose, key)
# 对加密后的图像encryption和秘钥图像key进行按位异或运算解密
decryption = cv2.bitwise_xor(encryption, key)
cv2.imshow('rose', rose)
cv2.imshow('key', key)
cv2.imshow('encryption', encryption)
cv2.imshow('decryption', decryption)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:

  1. 彩色图像加密
python 复制代码
import cv2
import numpy as np
# 读取图片,彩色图
rose = cv2.imread('images/rose.jpg')
# 获取图片的宽高和通道数
r, c, ch = rose.shape
# 随机生成一个密钥,密钥和图片长宽一致,注意这里的密钥是彩色图
key = np.random.randint(0, 256, [r, c, ch], dtype=np.uint8)
# 对图片和密钥进行按位异或运算加密
encryption = cv2.bitwise_xor(rose, key)
#  对加密后的图片和密钥进行按位异或运算解密
decryption = cv2.bitwise_xor(encryption, key)
cv2.imshow('rose', rose)
cv2.imshow('key', key)
cv2.imshow('encryption', encryption)
cv2.imshow('decryption', decryption)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行后的结果:

相关推荐
云上的云端10 小时前
vLLM-Ascend operator torchvision::nms does not exist 问题解决
人工智能·pytorch·深度学习
szxinmai主板定制专家10 小时前
基于ZYNQ MPSOC船舶数据采集仪器设计(一)总体设计方案,包括振动、压力、温度、流量等参数
arm开发·人工智能·嵌入式硬件·fpga开发
Westward-sun.10 小时前
CNN 核心知识点详解:从图像基础到卷积与池化
人工智能·计算机视觉·cnn
IT_陈寒10 小时前
SpringBoot自动配置揭秘:5个让开发效率翻倍的隐藏技巧
前端·人工智能·后端
星空下的月光影子11 小时前
基于XGBoost的催化剂活性衰减预测与可解释性分析
人工智能·机器学习
天若有情67311 小时前
通用个性化推荐核心架构思路:从视频到电商的跨场景落地实践
人工智能·算法·架构·推流·个性化推荐·猜你喜欢
jay神11 小时前
基于YOLOv8的钢材表面缺陷检测系统
人工智能·算法·yolo·目标检测·计算机视觉
zzh9407711 小时前
Gemini 3.1 Pro 训练范式深度解析:合成数据、课程学习与多阶段优化的工程实践
人工智能·深度学习
xixixi7777711 小时前
2026 年 03 月 20 日 AI+通信+安全行业日报(来更新啦)
大数据·人工智能·安全·ai·大模型·通信