使用 seek() 以 .tiff 格式创建平均像素值比较软件?

Using seek() to create a mean pixel value comparing software in .tiff format?

PIL 如何处理 seek() 函数以在多帧 .tiff 文件中运行?我正在尝试提取文件中各种帧的一条信息(灰度像素值),但无论我设置什么搜索,都会出现 EOFE 错误。 示例代码:

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\site-packages\PIL\Image.py",第 1712 行,正在查找 提高 EOFError

EOFError

干杯,JJ

由 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]