1

Python 2.7 で Debian Linux を使用しています。レイズ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
4

1 に答える 1

2

PIL 画像オブジェクトは項目の割り当てをサポートしていません。lenaあなたのPILImageオブジェクトです。

array代わりに numpy に割り当てるつもりでしたか? その場合は、次を使用します。

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

ここで、オブジェクトをスライス表記に置き換えましたrange(400)(はるかに効率的です)。

于 2013-11-13T15:18:28.430 に答える