图像转换和重新创建可得出神秘的结果

因此,我编写了这段小代码,尝试将RGBimge转换为Grayscale从该已接受答案中获取的代码。问题是,即使我只是重新创建原始图像,它也显示出与原始图像不相似的神秘图像。您认为问题是什么,我们应该如何解决呢?另外,我想将其转换Grayscale为给定的数组b。


这是我的代码:


import matplotlib.image as img

import matplotlib.pyplot as plt

from PIL import Image

import numpy as np


a = img.imread('hCeFA.png')


a = a * 255         #Matplotlib gives float values between 0-1


b = a * np.array([0.3, 0.59, 0.11])

b = np.sum(b, axis = 2) / 3           #Grayscale conversion


img1 = Image.fromarray(a, 'RGB')

img1.save('my.png')

img1.show()                     #Gives a cryptic image


plt.imshow(a/255, interpolation='nearest')     #Works fine

plt.show()


皈依舞
浏览 126回答 1
1回答

跃然一笑

更好地使用“ I”读取图像。像 imread('imageName.imgFormat',"I") 这将解决这个问题。它会以uint8格式读取图像,我想您会这样。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python