我正在尝试创建一个只删除" 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__
答案 0 :(得分:0)
我猜这个错误是在线:
im[x][y] = ...
如果Image.open()
对象不支持[]
语法(由__getitem__
实现),则会出现问题。
如果这是真的,那么修复可能是:
rgb_im.setpixel(...)