opencv-14 图像加密和解密

这篇具有很好参考价值的文章主要介绍了opencv-14 图像加密和解密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在OpenCV中,图像加密和解密是通过对图像像素进行一系列的变换和操作来实现的
通过按位异或运算可以实现图像的加密和解密。
通过对原始图像与密钥图像进行按位异或,可以实现加密;将加密后的图像与密钥图像再次进行按位异或,可以实现解密。
按位异或运算的基本规则如表 3-15 所示。

opencv-14 图像加密和解密,opencv,opencv,人工智能,计算机视觉
根据上述按位异或运算的规则,假设:
xor(a,b)=c
则可以得到:
xor(c,b)=a
xor(c,a)=b
上述运算的过程如表 3-16 所示

opencv-14 图像加密和解密,opencv,opencv,人工智能,计算机视觉
从上述结果可以看出,如果上述 a、b、c 具有如下关系:

  • a:明文,原始数据。

  • b:密钥。

  • c:密文,通过 xor(a,b)实现。
    则可以对上述数据进行如下操作和理解。

  • 加密过程:将明文 a 与密钥 b 进行按位异或,完成加密,得到密文 c。

  • 解密过程:将密文 c 与密钥 b 进行按位异或,完成解密,得到明文 a。

位运算是指针对二进制位进行的运算,利用位运算即可实现对像素点的加密。在图像处理中,需要处理的像素点的值通常为灰度值,其范围通常为[0,255]。

例如,某个像素点的值为 216(明文),则可以使用 178(该数值由加密者自由选定)作为密钥对其进行加密,让这两个数的二进制值进行按位异或运算,即完成加密,得到一个密文 106。当需要解密时,将密文 106 与密钥 178 进行按位异或运算,即可得到原始像素点值 216(明文)。具体过程为:
bit_xor(216,178)=106
bit_xor(106,178)=216
以二进制形式表示的具体细节如下。

opencv-14 图像加密和解密,opencv,opencv,人工智能,计算机视觉
对图像内的每一个像素点重复上述操作,即可完成对图像的加密、解密操作。这里以一个原始图像 O 为例,具体说明图像的加密、解密过程。

1.加密过程

假设有需要加密的原始图像 O,其中的像素值为:

opencv-14 图像加密和解密,opencv,opencv,人工智能,计算机视觉
选定的加密密钥图像为 K,其中的像素值为:

opencv-14 图像加密和解密,opencv,opencv,人工智能,计算机视觉
图像 O 所对应的二进制表示 OB 为

opencv-14 图像加密和解密,opencv,opencv,人工智能,计算机视觉
密钥图像 K 所对应的二进制表示 KB 为:

opencv-14 图像加密和解密,opencv,opencv,人工智能,计算机视觉

将 OB 与 KB 进行按位异或运算,即得到图像 O 的加密图像 OSB:

opencv-14 图像加密和解密,opencv,opencv,人工智能,计算机视觉
OSB 转换为十进制形式 OS,如下:
opencv-14 图像加密和解密,opencv,opencv,人工智能,计算机视觉
至此,图像 O 的加密过程完成,得到原始图像 O 的加密图像 OS。

2.解密过程

解密过程需要将加密图像 OS 与密钥图像 K 进行按位异或运算,得到原图像 OR。
将加密图像 OS 的二进制形式 OSB 与密钥图像 K 的二进制形式 KB 进行按位异或运算,
即得到原始图像 OR 的二进制形式 ORB。按照上述运算,得到的 ORB 为:

opencv-14 图像加密和解密,opencv,opencv,人工智能,计算机视觉
ORB 转换为十进制形式,得到解密图像 OR,如下:
opencv-14 图像加密和解密,opencv,opencv,人工智能,计算机视觉
至此,图像的解密过程结束,得到加密图像 OS 的解密图像 OR。

从上述过程可以看到,解密过程所得到的解密图像 OR 与原始图像 O 是一致的。这说明上
述加密、解密过程是正确的。
上述说明过程中,为了方便理解和观察数据的运算,在进行按位运算时,我们都是将十进
制数转换为二进制数后,再进行位运算处理的。实际上,在使用 OpenCV 编写程序时,不需要
这样转换,OpenCV 中位运算函数的参数是十进制数,位运算函数会直接对十进制参数进行按位异或运算。

实验1 - 对图片加密解密:

import cv2
import numpy as np
lena=cv2.imread("lena.png",0)
r,c=lena.shape
#生成密钥,随机生成一个和lena大小一样的矩阵
key=np.random.randint(0,256,size=[r,c],dtype=np.uint8)
#对图片进行加密
encryption=cv2.bitwise_xor(lena,key)

#对图片进行解密
decryption=cv2.bitwise_xor(encryption,key)
cv2.imshow("lena",lena)
cv2.imshow("key",key)
cv2.imshow("encryption",encryption)
cv2.imshow("decryption",decryption)
cv2.waitKey()
cv2.destroyAllWindows()

运行效果:

opencv-14 图像加密和解密,opencv,opencv,人工智能,计算机视觉

本例的各个图像关系如下。文章来源地址https://www.toymoban.com/news/detail-583051.html

  • 图像 lena 是明文(原始)图像,是需要加密的图像,从当前目录下读入。
  • 图像 key 是密钥图像,是加密和解密过程中所使用的密钥,该图像是由随机数生成的。
  • 图像 encryption 是加密图像,是明文图像 lena 和密钥图像 key 通过按位异或运算得到的。
  • 图像 decryption 是解密图像,是加密图像 encryption 和密钥图像 key 通过按位异或运算
    得到的。
    运行上述程序,结果如图所示,其中:
  • 图(a)是原始图像 lena。
  • 图(b)是密钥图像 key。
  • 图©是原始图像 lena(图(a))借助密钥 key(图(b))加密得到的加密图像 encryption。
  • 图(d)是对加密图像 encryption(图©)使用密钥图像 key(图(b))解密得到的解密图像
    decryption。

到了这里,关于opencv-14 图像加密和解密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解密人工智能:线性回归 | 逻辑回归 | SVM

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 机器学习算法是一种基于数据和经验的算法,通过对大量数据的学习和分析,自动发现数据中的模式、规律和关联,并利用这些模式和规律来进行预测、分类或优化

    2024年01月20日
    浏览(32)
  • 解密人工智能:决策树 | 随机森林 | 朴素贝叶斯

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 机器学习算法是一种基于数据和经验的算法,通过对大量数据的学习和分析,自动发现数据中的模式、规律和关联,并利用这些模式和规律来进行预测、分类或优化

    2024年01月21日
    浏览(36)
  • 前馈神经网络解密:深入理解人工智能的基石

    本文深入探讨了前馈神经网络(FNN)的核心原理、结构、训练方法和先进变体。通过Python和PyTorch的实战演示,揭示了FNN的多样化应用。 作者TechLead,拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架

    2024年02月11日
    浏览(35)
  • 解密人工智能:语言理解与机器翻译技术的革命

    人工智能(Artificial Intelligence, AI)是一门研究如何让计算机模拟人类智能的学科。自从1950年代以来,人工智能一直是计算机科学领域的一个热门话题。然而,直到最近几年,人工智能技术才开始真正取得了显著的进展。这一进展主要归功于深度学习(Deep Learning)技术的蓬勃发展。

    2024年02月22日
    浏览(43)
  • 大数据前馈神经网络解密:深入理解人工智能的基石

    本文深入探讨了前馈神经网络(FNN)的核心原理、结构、训练方法和先进变体。通过Python和PyTorch的实战演示,揭示了FNN的多样化应用。 前馈神经网络(Feedforward Neural Network, FNN)是神经网络中最基本和经典的一种结构,它在许多实际应用场景中有着广泛的使用。在本节中,我

    2024年02月04日
    浏览(37)
  • 解密 LLAMA2 代码:揭开语言人工智能惊奇的秘密

    简介 在不断发展的 AI 和自然语言处理领域,深度学习模型的突破推动着机器理解和生成人类语言的能力。在这些杰出的模型中,LLAMA2 Transformer 脱颖而出,成为真正的游戏规则改变者,将语言理解和生成的可能性推向新的高度。 LLAMA2 基于 Transformer 架构,融入了先进技术和架

    2024年02月21日
    浏览(40)
  • 阶段五:深度学习和人工智能(学习人工智能的应用领域,如自然语言处理,计算机视觉等)

    Python是人工智能领域最流行的编程语言之一,它具有简单易学、功能强大、库丰富等优点,因此在自然语言处理、计算机视觉等领域得到了广泛应用。 自然语言处理 自然语言处理是人工智能领域的一个重要分支,它主要研究如何让计算机理解和处理人类语言。Python在自然语

    2024年02月04日
    浏览(64)
  • 深入探索人工智能与计算机视觉

    在当今数字化时代,人工智能(AI)和计算机视觉(CV)作为两大前沿技术,正以惊人的速度改变着我们的生活。本文将深入探讨人工智能与计算机视觉的关系、应用以及未来发展方向。 1. 人工智能与计算机视觉的关系 人工智能是一门涵盖众多技术领域的学科,旨在使计算机

    2024年04月14日
    浏览(45)
  • 人工智能与金融技术:区块链与加密货币

    随着人工智能技术的不断发展,人们对于金融技术的需求也不断增加。区块链和加密货币是人工智能与金融技术的一个重要部分,它们为金融业提供了一种新的交易方式,同时也为人工智能提供了一种新的应用场景。在本文中,我们将深入探讨区块链和加密货币的核心概念、

    2024年04月10日
    浏览(71)
  • 探索人工智能 | 智能推荐系统 未来没有人比计算机更懂你

    智能推荐系统(Recommendation Systems)利用机器学习和数据挖掘技术,根据用户的兴趣和行为,提供个性化推荐的产品、内容或服务。 智能推荐系统是一种利用机器学习和数据分析技术的应用程序,旨在根据用户的兴趣、偏好和行为模式,向其推荐个性化的产品、服务或内容。

    2024年02月13日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包