1. ホーム
  2. python

[解決済み] TypeError: 整数の引数を期待したが、画像をグレイスケールに変換するときに浮動小数点になった。

2022-02-08 08:18:11

質問

以下のコードを使用して、カラー画像をグレースケール画像に変換しています。なぜ、このコードは 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")

解決方法は?

に渡している引数は pixel[x, y]int でなく float . 整数としてキャストしてみてください。

pixel[x, y] = ((int(0.299*R) + int(...