我正在尝试使用python将灰度图像转换为RGB图像格式的代码,但每次尝试执行时都会引发TypeError。
我的代码如下:
from PIL import Image
path = "bw.jpg"
img = Image.open(path)
rgb = img.convert("RGB")
width,height = rgb.size
for x in range(width):
for y in range(height):
r, g, b = img.getpixel((x, y))
value = r* 299.0/1000 + g* 299.0/1000 + b * 299.0/1000
value = int(value)
rgb.putpixel ((x, y), value)
rgb.save("abc.png")
我得到的错误是:
r, g, b = img.getpixel((x, y))
TypeError: 'int' object is not iterable
任何帮助都会非常明显。
答案 0 :(得分:0)
您混淆了图像和值。使用img
可以获得greylevel,因此您应该使用:
grey = img.getpixel((x, y))
或者,因为您将img
转换为rgb
(使用RGB值),您还可以写:
r, g, b = rgb.getpixel((x, y))
但是,似乎你要进行不必要的计算(好吧,可能这只是完整代码的破解部分)。
错误:img.getpixel()
将返回一个数字(在BW图像上),int
不可迭代,可以分为r
,g
和{{1所以错误。但是b
返回一个列表(长度为3),这是可迭代的。