PIL对象中的属性错误

时间:2013-11-13 15:15:10

标签: python numpy python-imaging-library

我正在使用Debian Linux和Python 2.7。我收到了AttributeError加注信息

AttributeError: __setitem__

为行

lena[mask] = 0
lena[range(400), range(400)] = 255

我做错了什么。

from PIL import Image
import scipy
from scipy import ndimage
import matplotlib.pyplot as plt
import numpy as np

from scipy import misc
import scipy.misc
import copy


lena = Image.open("/home/pi/Desktop/testc.jpg")
array = lena.convert('L')
array=np.asarray(array)
arr=copy.deepcopy(array)
arr[10:13, 20:23]
arr[100:120] = 255

lx, ly = lena.size
X, Y = np.ogrid[0:lx, 0:ly]
mask = (X - lx/2)**2 + (Y - ly/2)**2 > lx*ly/4
lena[mask] = 0
lena[range(400), range(400)] = 255

1 个答案:

答案 0 :(得分:2)

PIL图像对象不支持项目分配; lena是您的PIL Image对象。

您的意思是指定为numpy array吗?如果是这样,请使用:

arr[mask] = 0
arr[:400, :400] = 255

我用切片表示法替换range(400)个对象(效率更高)。

相关问题