2014-04-18 1 views
2

128 픽셀 x 128 픽셀 x 122000 프레임의 다중 페이지 티프를 읽으려고합니다. 다음 코드를 사용하여 파일 읽기 :Matlab은 2^16 프레임 이상으로 다중 페이지 티프 파일을 읽을 수 없습니다.

InfoImage=imfinfo(fname); 
mImage=InfoImage(1).Width; 
nImage=InfoImage(1).Height; 
NumberImages=length(InfoImage); 
image=zeros(nImage,mImage,NumberImages,'uint16'); 
TifLink = Tiff(fname, 'r'); 
for i=1:NumberImages 
    TifLink.setDirectory(i); 
    image(:,:,i)=TifLink.read(); 
end 
TifLink.close(); 

하면 다음과 같은 오류 발생 : 정확히에서

Error using tifflib 
Input argument out of range. 

Error in Tiff/setDirectory (line 1277) 
     tifflib('setDirectory',obj.FileID,dirNum-1); 

Error in TiffReader (line 18) 
    TifLink.setDirectory(i); 

을 전 = 65537, 또는 2^16 + 1

은 MATLAB이 생각 보인다 tiff는 아마도 65536 프레임보다 길 수는 없습니다. ImageJ에서 잘 열리는 프레임이 있기 때문에 분명히 그렇지 않습니다.

문제가 무엇인지 아는 사람이 있습니까?

+0

어떤 MATLAB 버전을 사용하고 있습니까? MATLAB은 libtiff를 사용합니다. libtiff의 이전 버전은보고있는 내용을 설명 할 수있는 특정 Tiff 필드에 짧은 int를 사용했습니다. MATLAB의 최신 버전은이 문제가 없어야하는 libtiff 4.0을 사용합니다. (Tiff.getVersion 사용). 나는 아직 확인할 기회가 없었다. –

+1

나는 R2013b (Linux) 및 R2014a (Mac)에서 LIBTIFF 버전 4.0.0을 사용해 보았습니다. 참고 당신은 또한 내 다른 질문에 여기에 관심이있을 수 있습니다 : [link] (http://stackoverflow.com/questions/23163048/matlab-write-multipage-tiff-exponentially-slow) – user3542918

답변