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

运行后的结果:

相关推荐
爱打代码的小林2 小时前
opencv实现图像拼接
人工智能·opencv·计算机视觉
lrh1228002 小时前
机器学习概览
人工智能
福客AI智能客服2 小时前
智能跟单革新:AI客服软件与人工智能客服机器人重构服务链路价值
人工智能·机器人
GISer_Jing2 小时前
从工具辅助到AI开发前端新范式
前端·人工智能·aigc
美狐美颜SDK开放平台2 小时前
从抖音到私域直播:抖动特效正在重塑直播美颜sdk
前端·人工智能·第三方美颜sdk·视频美颜sdk·美狐美颜sdk
棒棒的皮皮2 小时前
【OpenCV】Python图像处理之查找并绘制轮廓
图像处理·python·opencv·计算机视觉
努力犯错2 小时前
如何使用AI图片放大器提升图片质量:2026年完整指南
人工智能
云和数据.ChenGuang2 小时前
鲲鹏HPC+AI赋能风电产业 筑牢绿电根基 助力双碳目标落地
人工智能
云飞云共享云桌面2 小时前
SolidWorks如何实现多人共享
服务器·前端·数据库·人工智能·3d