因此,我编写了这段小代码,试图将RGB
的图像转换为从接受的answer中提取的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()
答案 0 :(得分:1)
更好地读取带有“ I”的图像。
喜欢
imread('imageName.imgFormat',"I")
这样可以解决问题。它会读取uint8格式的图像,我想您会这样。