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()

运行后的结果:

相关推荐
冬奇Lab1 天前
一天一个开源项目(第255篇):Mika —— 装在安卓手机里的 AI 代理,在后台虚拟屏上替你操作 App 和网页
人工智能·开源·资讯
孟健1 天前
实测 agent-desktop:AI 控制桌面不截图、不占鼠标键盘,连点 55 次计算器 0 失误
人工智能·架构·开源
MUSHANGXS1 天前
大模型时代的新蓝海-基于OS底层的AI-Agent应用
人工智能·职场和发展·交互
伞伞悦读1 天前
【第76期】两张3行表左连接变5行:主键、validate与未匹配排查完整教程
人工智能·python
ZhengEnCi1 天前
一句话定位图片中目标最准的模型是哪个:2026 视觉定位 SOTA 全面评测与选型指南
计算机视觉
IT_陈寒1 天前
Redis大key删除为什么会导致服务卡顿?我的线上事故复盘
前端·人工智能·后端
阿里云大数据AI技术1 天前
云栖实录 | AgenticSearch 定义 AI 搜索时代的信息检索 - 新范式
人工智能
AI源码1 天前
基于深度学习的音乐风格分类系统
人工智能·深度学习
慢慢来不要急1 天前
GitHub Copilot Fusion 智能路由模型 · 11-02
人工智能·开发工具
CServer_011 天前
源码交付!有色金属工厂的AI数据底座
人工智能·物联网·制造