Python numpy.ones会在图像上显示红色、绿色、蓝色和黑色条带
我有以下代码:Python numpy.ones会在图像上显示红色、绿色、蓝色和黑色条带,python,python-3.x,image,numpy,python-imaging-library,Python,Python 3.x,Image,Numpy,Python Imaging Library,我有以下代码: from PIL import Image import numpy as np a = np.ones((512, 256, 3)).astype(int)*255 image = Image.fromarray(a, "RGB") image.save("test.png", "PNG") 我希望这将导致一个大小为512x256的白色图像。 相反,我得到的是: 出于某种原因,此图像是一系列条形图,而不是纯色 我做错了什么?它是numpy数组的格式吗?使用图像。新的 im
from PIL import Image
import numpy as np
a = np.ones((512, 256, 3)).astype(int)*255
image = Image.fromarray(a, "RGB")
image.save("test.png", "PNG")
我希望这将导致一个大小为512x256的白色图像。
相反,我得到的是:
出于某种原因,此图像是一系列条形图,而不是纯色
我做错了什么?它是numpy数组的格式吗?使用
图像。新的
image = Image.new('RGB', (512, 256), color=(255, 255, 255))
image.save("test.png", "PNG")
不要使用astype(int)
而是使用astype(np.uint8)
甚至更好
a = np.full((512, 256, 3), 255, dtype=np.uint8)
您看到的条纹是int值重新解释为uint8
s序列的结果。有效!但是现在我该如何更改此图像中的值呢?@NoahWillCrow修改颜色
元组以根据需要更改颜色。对不起,不,我的意思是,我该如何更改每个像素的值来表示绘制三角形?比如,我需要什么样的数据格式才能使用Image.putdata?@NoahWillCrow啊,不太熟悉PIL来回答这个问题,对不起!哦最后一句话非常有用。非常感谢。最后我就是找不到我的错误,结果发现是这样奇怪的事情。