我不明白" AttributeError:__ getitem __"

时间:2016-02-03 18:08:13

标签: python

我正在尝试创建一个只删除" r"和" b"图像的rgb值,留下不同深浅的绿色图像。这是我的代码:

import matplotlib.pyplot as plt
from PIL import Image

im = Image.open('Image.jpg')
rgb_im = im.convert('RGB')
width, height = rgb_im.size
for x in range(width):
    for y in range(height):
        r, g, b = rgb_im.getpixel((x, y))
        im[x][y] = [0, g, 0, 255]

fig, ax = plt.subplots(1, 1)
ax.imshow(im, interpolation='none')
fig.show()

我对编程很陌生,并且不明白为什么我的代码会抛出这个错误:

  

AttributeError:__ getitem __

有人可以解释如何解决这个问题或推荐更好的解决方案吗? AttributeError: __getitem__

1 个答案:

答案 0 :(得分:0)

我猜这个错误是在线:

im[x][y] = ...

如果Image.open()对象不支持[]语法(由__getitem__实现),则会出现问题。

如果这是真的,那么修复可能是:

rgb_im.setpixel(...)