将图像转换为灰度输出错误的结果

萨钦·提图斯(Sachin Titus)
 def desaturate_image(self, image):
    desatimage = Image.new(image.mode, image.size)
    pixellist = []
    print(len(pixellist))
    for x in range(image.size[0]):
        for y in range(image.size[1]):
            r, g, b = image.getpixel((x, y))
            greyvalue = (r+g+b)/3
            greypixel = (int(round(greyvalue)), int(round(greyvalue)), int(round(greyvalue)))
            pixellist.append(greypixel)
    print(pixellist)
    desatimage.putdata(pixellist)
    return desatimage

我正在编写一个python方法,将作为参数传递的图像转换为灰度。我得到的结果虽然不正确。这是输入和输出。哪里错了?

在此处输入图片说明

在此处输入图片说明

米拉杜洛

首先要对尺寸错误的像素进行迭代-枕头图像是按列排列的。所以你要

...
for y in range(image.size[1]):
    for x in range(image.size[0]):
...

以便您的像素列表按列存储像素。

这给你

在此处输入图片说明


当然,您可以使用该.convert方法更轻松地获得灰度表示,该方法使用文档中提到的转换。

image.convert('L')

如下所述,这会为您提供实际上处于灰度模式('L'的图像,而不是您当前的答案,该图像将RGB模式('RGB')保持为三重重复数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章