TypeError:期望的整数参数,在将图像转换为灰度时得到浮点数

唐笙凱*_*唐笙凱 1 python python-imaging-library

我使用以下代码将彩色图像转换为灰度图像.它为什么抛出TypeError

#!/usr/bin/python
from PIL import Image
im = Image.open("Penguins.jpg")
pixel = im.load()
width, height = im.size
for x in range(width):
    for y in range(height):
        R,G,B = pixel[x,y]
        pixel[x,y] = ((0.299*R+0.587*G+0.114*B),(0.299*R+0.587*G+0.114*B),(0.299*R+0.587*G+0.114*B))

im.save("Penguins_new.jpg")
Run Code Online (Sandbox Code Playgroud)

Ziz*_*212 6

你要传递的论点pixel[x, y]需要是一个int,而不是一个float.尝试将其转换为整数.

pixel[x, y] = ((int(0.299*R) + int(...
Run Code Online (Sandbox Code Playgroud)

  • 那不是演员; 这是一个构造函数调用.Python没有强制转换. (3认同)