2016-07-24 3 views
0

PILはどのようにしてマルチフレーム.tiffファイル内で動作するseek()関数を処理しますか?ファイル内のさまざまなフレームの情報(グレースケールのピクセル値)を抽出しようとしていますが、シークを設定しても、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

乾杯を求め、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] 
関連する問題