我有以下代码。 src_img是一个1250x1250 rgb图像。我想创建另一个平均强度的灰度图像。
from PIL import Image
img = Image.open(src_img)
width, height = img.size
avg_img = Image.new('1', img.size, 'black')
avg_pixels = avg_img.load()
for x in range(width):
for y in range(height):
r, g, b = img.getpixel((x, y))
avg_pixels[x, y] = int((r + g + b) / 3.0)
avg_img.save('avg.tiff')
但是得到的avg.tiff文件是纯白色的。我可以看到avg_pixels具有必要的值,但保存的图像与那些不对应。
答案 0 :(得分:4)
模式'1'是双层图像 - 意思是白色或黑色。对于灰度,您需要'L'。
avg_img = Image.new('L', img.size, 'black')