2016-07-24 6 views
0

Как работает функция поиска() PIL для работы в файлах мультифайлов .tiff? Я пытаюсь извлечь часть информации (значения пикселей в оттенках серого) различных кадров в файле, но независимо от того, для чего я настроил поиск, возникает ошибка EOFE. Пример кода:Использование seek() для создания среднего значения пикселей, сравнивающего программное обеспечение в формате .tiff?

from PIL import Image 
im = Image.open('example_recording.tif').convert('LA') 

width,height = im.size 
image_lookup = 0 
total=0 
for i in range(0,width): 
    for j in range(0,height): 
     total += im.getpixel((i,j))[0] 

total2=0 
im.seek(1) 
for i in range(0,width): 
    for j in range(0,height): 
     total += im.getpixel((i,j))[0] 

print total 
print total2 

Журнал ошибок выглядит следующим образом:

Файл "C: \ Users \ ltopuser \ Anaconda2 \ Lib \ сайт-пакеты \ PIL \ Image.py", строка 1712, в искать повышение EOFError

EOFError

Cheers, JJ

+1

Пожалуйста, разместите свой ответ в качестве ответа и примите его, если он ответит на ваш вопрос. –

ответ

1

был вызван PIL получения до конца файла: может быть исправлена, как это;

class ImageSequence: 
def __init__(self, im): 
    self.im = im 
def __getitem__(self, ix): 
    try: 
     if ix: 
      self.im.seek(ix) 
     return self.im 
    except EOFError: 
     raise IndexError # this is the end of sequence 

for frame in ImageSequence(im): 
for i in range(0,width): 
    for j in range(0,height): 
     total += im.getpixel((i,j))[0]