2016-07-24 1 views
0

PIL은 multiframe .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 : \ 사용자 \ 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] 
관련 문제