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

运行后的结果:

相关推荐
火山引擎开发者社区9 小时前
火山引擎发布《企业级 ArkClaw 安全白皮书》
人工智能
阿里云大数据AI技术9 小时前
Hologres AI Function 文本分类实战:从提示词设计到 KV-Cache 调优,全程 SQL 搞定
人工智能·sql
code_pgf10 小时前
AI-Agent记忆机制分析
大数据·人工智能
阿拉斯攀登11 小时前
安全与可控性:输出校验、权限控制
人工智能·chatgpt·agent·memory·claude·知识库·向量数据库
冬奇Lab11 小时前
每日一个开源项目(第152篇):SAG - 用 SQL JOIN 代替 PageRank 做多跳 RAG 检索
人工智能·开源
冬奇Lab11 小时前
Workflow 系列(09):主流框架对比——Prompt-based、LangGraph、Temporal、n8n 如何选
人工智能·工作流引擎
程序员老猫12 小时前
vide coding 个人产品,那就从博客开始吧
人工智能·程序员·全栈
geo搜搜果数据12 小时前
实测5大AI平台品牌排名:复现GEO监测流程
人工智能·langchain·搜搜果