Python图像处理丨如何调用OpenCV绘制直方图(python opencv图像识别教程整理)
710
2022-08-22
【计算机视觉40例】案例01:图像加密与解密(图像加密技术的仿真与实现)
图像加密与解密的展示如图1所示:
图像在加密后得到的是一张混沌图像,我们根本无法从加密后的图像中获取任何有效信息。解密后图像,与原始图像保持一致。
图1 图像加密解密展示
图像加密解密具有非常重要的应用。例如,我们可以把图像加密,也可以把密码等关键信息保存在图片上然后对图片进行加密从而实现高保密的要求。
加密的方法有很多种,我们可以:
置乱加密:将图像内所有的像素点打乱顺序,实现加密。异或加密:通过异或运算的方式实现加密、解密。
本文讨论异或的加密。异或加密运算如表1所示(使用xor表示异或运算),针对数字0和数字1,其运算规律为:
相同的数值运算时,结果为0不同的数值运算时,结果为1
但是,这里很有意思的一点在于,存在如下逻辑链条:
假设:a和b异或得到c推论1:c和a异或会得到b推论2:c和b异或会得到a
按照上述逻辑,我们得到如下逻辑:
加密:明文(a)和密钥(b)加密得到密文(c)解密:密文(c)和密钥(b)解密得到明文(a)
表1 异或运算
采用数值加密、解密的逻辑,即可得到图像加密、解密的逻辑,图像加密解密模型如图2所示。其中,密钥图像是加密、解密双方约定的任意一幅图像(本例中使用的是一幅城市风景图)。解密后得到的解密图像与原始图像完全一致。
图2 加密模型
运行程序,结果如图3所示,其中:
图(a)是原始图像lena。图(b)是密钥图像key,其看起来是杂乱无章的。图(c)是加密得到的加密图像encryption。是通过对原始图像lena(图(a))和密钥图像key(图(b))进行按位异或得到的。该图像看起来是杂乱无章的。虽然图像encryption和图像key都是杂乱无章的,但是他们是不一样的。图(d)是解密得到的解密图像decryption,是通过对加密图像encryption(图(c))与密钥图像key(图(b))按位异或得到的。
图3 程序的运行结果
在《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书中,从理论基础、实现过程等角度系统深入地介绍了图像加密与解密的具体算法和实现流程,并对代码实现进行了细致的解释。欢迎大家阅读第4章《图像加密》,获取详细内容。
《计算机视觉40例——从入门到深度学习(OpenCV-Python)》在介绍Python基础、OpenCV基础、计算机视觉理论基础、深度学习理论的基础上,介绍了计算机视觉领域内具有代表性的40个典型案例。这些案例中,既有传统的案例(数字识别、答题卡识别、物体计数、缺陷检测、手势识别、隐身术、以图搜图、车牌识别、图像加密、指纹识别等),也有深度学习案例(图像分类、风格迁移、姿势识别、实例分割等),还有人脸识别方面的案例(表情识别、驾驶员疲劳监测、识别性别与年龄等)。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~