Мой код приведен ниже, я хочу вывести средний пиксель с помощью кода .averagePixels в PIL, но выходной возвращаемый объект 'int' не повторяется.Любой может помочь в этом
from PIL import Image
class PixelCounter(object):
def __init__(self, imageName):
self.pic = Image.open(imageName)
self.imgData = self.pic.load()
def averagePixels(self):
r, g, b = 0, 0, 0
count = 0
for x in range(self.pic.size[0]):
for y in range(self.pic.size[1]):
tempr,tempg,clrs = self.imgData[x,y]
r += clrs[0]
g += clrs[1]
b += clrs[2]
count += 1
yield ((r/count)(g/count),(b/count), count)
if __name__ == '__main__':
x=[]
pc = PixelCounter(r"C:\Users\lena-gs.png")
print ("(red, green, blue, total_pixel_count)")
print (list(pc.averagePixels()))
вывод:
(red, green, blue, total_pixel_count)
TypeError Traceback (most recent call last)
<ipython-input-121-4b7fee4299ad> in <module>()
19 pc = PixelCounter(r"C:\Users\user\Desktop\lena-gs.png")
20 print ("(red, green, blue, total_pixel_count)")
---> 21 print (list(pc.averagePixels()))
22
23
<ipython-input-121-4b7fee4299ad> in averagePixels(self)
9 for x in range(self.pic.size[0]):
10 for y in range(self.pic.size[1]):
---> 11 tempr,tempg,clrs = self.imgData[x,y]
12 r += clrs[0]
13 g += clrs[1]
TypeError: 'int' object is not iterable