Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 两幅图像是否可能具有相同的像素值,但仍然不同?_Python_Numpy_Python Imaging Library_Numpy Ndarray - Fatal编程技术网

Python 两幅图像是否可能具有相同的像素值,但仍然不同?

Python 两幅图像是否可能具有相同的像素值,但仍然不同?,python,numpy,python-imaging-library,numpy-ndarray,Python,Numpy,Python Imaging Library,Numpy Ndarray,我正在从事一个Python项目,在这个项目中,我对图像进行加密和解密。但是,每次我运行它时,解密的图像与原始图像不同,尽管它具有相同的像素值 我的代码 img=Image.open(路径) 像素_值=np.asarray(img) img2=Image.open(“decrypted.png”) 像素_值_2=np.asarray(img2) 打印(像素值=像素值) 给出以下输出: [[True…True] [真的……真的] [真的……真的] ... [真的……真的] [真的……真的] [真的

我正在从事一个Python项目,在这个项目中,我对图像进行加密和解密。但是,每次我运行它时,解密的图像与原始图像不同,尽管它具有相同的像素值

我的代码

img=Image.open(路径)
像素_值=np.asarray(img)
img2=Image.open(“decrypted.png”)
像素_值_2=np.asarray(img2)
打印(像素值=像素值)
给出以下输出:

[[True…True]
[真的……真的]
[真的……真的]
...
[真的……真的]
[真的……真的]
[真的……真的]]
有人知道我在这里遗漏了什么,或者我没有考虑过什么吗

原始图像:

解密图像:


链接的原始图像具有
p
,因此是图像。因此,原始图像(未映射到调色板)中的实际值似乎与“解密”图像中的值相同。(加密和解密实际上是做什么的?)因此,比较的NumPy数组是相同的。如果将原始图像转换为模式
L
(灰度),则生成的NumPy数组不同,请参见以下代码:

将numpy导入为np
从PIL导入图像
img=Image.open('original.png')
img2=Image.open('decrypted.png')
打印(“原始模式:”,图像模式)
打印('模式解密:',img2.Mode)
打印(np.all(np.array(img)==np.array(img2)))
img=img.convert('L')
打印(np.all(np.array(img)==np.array(img2)))
这就是输出:

原始模式:P 模式解密:L 真的 假的 因此,实际的问题是,在加密/解密范围内的预期行为是什么?您是否知道原始图像中的模式
P

附带说明:例如,当使用OpenCV打开两个图像时,生成的NumPy数组与开始时不同,因为OpenCV无法处理调色板图像

----------------------------------------
系统信息
----------------------------------------
平台:Windows-10-10.0.16299-SP0
Python:3.9.1
NumPy:1.20.1
枕头:8.1.0
----------------------------------------

什么是
numpy.array_equal(a1,a2)
?这也返回true。请检查此处并检查图像的
模式。@MarkSetchell谢谢,这确实有帮助!