今日後輩に聞かれたのでメモ代わりに
結論
imread
関数の第二引数に読みたいページのインデックスを指定することで読み出すことができる[1]。imread(filename, idx)
[2]。
とりあえず全部読み出したい!という場合はimfinfo
関数を用いてページ数を調べ、for
で1枚ずつ読み出す。一気に読み出す方法は調べても見つからなかった。
imInfo = imfinfo(filename); % nページの情報が格納された nx1 の構造体配列が返される
% imfinfoが返す構造体は画像の縦横のピクセル数も格納されている
fullImage = zeros(imInfo(1).Height, imInfo(1).Width, length(imInfo));
% forで1ページずつ読み出す
for i=1:length(imInfo)
fullImage(:,:,i) = imread(filename, i);
end
参考
[1] How to read a multiframe tiff in MATLAB? – MATLAB Answers – MATLAB Central (mathworks.com)
コメント