Python 初始化对象错误类型错误:';int';对象没有属性'__获取项目';

Python 初始化对象错误类型错误:';int';对象没有属性'__获取项目';,python,python-2.7,image-processing,Python,Python 2.7,Image Processing,我正在尝试使用以下代码进行一些图像处理: Image.open('C:\\temp\\img') width, height = im.size im = im.resize((width*8,height*8), Image.BICUBIC) pixdata = im.load() for y in xrange(im.size[1]): for x in xrange(im.size[0]): if pixdata[x, y][0] < 165:

我正在尝试使用以下代码进行一些图像处理:

Image.open('C:\\temp\\img')
width, height = im.size
im  = im.resize((width*8,height*8), Image.BICUBIC)

pixdata = im.load()
for y in xrange(im.size[1]):
    for x in xrange(im.size[0]):
        if pixdata[x, y][0] < 165:
            pixdata = (0, 0, 0, 255)

for y in xrange(im.size[1]):
    for x in xrange(im.size[0]):
        if pixdata[x, y][1] < 165:
            pixdata = (0, 0, 0, 255)

for y in xrange(im.size[1]):
    for x in xrange(im.size[0]):
        if pixdata[x, y][2] > 0:
            pixdata[x, y] = (255, 255, 255, 255)
Image.open('C:\\temp\\img')
宽度、高度=im尺寸
im=im.resize((宽*8,高*8),Image.BICUBIC)
pixdata=im.load()
对于X范围内的y(im.尺寸[1]):
对于x范围内的x(im.尺寸[0]):
如果pixdata[x,y][0]<165:
pixdata=(0,0,0,255)
对于X范围内的y(im.尺寸[1]):
对于x范围内的x(im.尺寸[0]):
如果pixdata[x,y][1]<165:
pixdata=(0,0,0,255)
对于X范围内的y(im.尺寸[1]):
对于x范围内的x(im.尺寸[0]):
如果pixdata[x,y][2]>0:
pixdata[x,y]=(255,255,255,255)
然而,当我做上述工作时,我得到一个打字错误。pixdata正确地存储在内存中,但不知道为什么会出现此错误

if pixdata[x, y][0] < 165:
TypeError: 'int' object has no attribute '__getitem__'
如果pixdata[x,y][0]<165:
TypeError:“int”对象没有属性“\uuuu getitem\uuuu”

您的问题是您正在重新分配
pixdata
。它开始时是一个
图像
对象,但随后:

for y in xrange(im.size[1]):
    for x in xrange(im.size[0]):
        if pixdata[x, y][0] < 165:
            pixdata = (0, 0, 0, 255)
X范围内y的
(im.尺寸[1]):
对于x范围内的x(im.尺寸[0]):
如果pixdata[x,y][0]<165:
pixdata=(0,0,0,255)
现在
pixdata
是(或可能是;
if
测试可能通过,也可能不通过)
(0,0,0,255)
。现在,下次尝试访问
pixdata[x,y][0]
(在同一循环的后续迭代中,或稍后在另一个循环中)时,您试图索引到
(0,0,0,255)
,而不是图像数据,这显然是行不通的

解决方案:如果仍然需要,请不要丢弃
pixdata
。您可能需要
pixdata[x,y]=(0,0,0,255)
。你在第三个循环中做对了,在前两个循环中用同样的方法