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

运行后的结果:

相关推荐
电子元件小说家26 分钟前
2026年AI与汽车电子双轮驱动下,大感值贴片功率电感选型与替代观察
人工智能·汽车
七牛开发者1 小时前
从 Muse、dots 和 Grok Bot 看 Personal Agent:状态、记忆、授权与后台执行
人工智能
一枕槐安4871 小时前
AG 幻觉率从 24% 压到 4%:我把召回评估做成了流水线
人工智能·ai
北方的银狐-Zero1 小时前
OntoL本体产品生产案例分析-项目,合同,付款,本体交付案例
人工智能·本体论
二川bro1 小时前
wiki编译拆解
人工智能
迅为电子1 小时前
【迅为RK3588开发板与RK1828算力卡方案】工业异常检测:缺陷定位全流程演示
人工智能
YH_Analytics1 小时前
2026-2032 食品吸液垫行业市场规模与增长预测
大数据·网络·人工智能
我命由我123451 小时前
智能助手通用问答边界
人工智能·python·学习·ai·学习方法·ai编程·智能体
mtouch3331 小时前
多源矢量数据接入与API动态聚合:三维可视化沙盘系统的设计与实现
人工智能·无人机·虚拟现实·电子沙盘·数字沙盘