Python+PILでマルチページTIFF読み込み

マルチページTIFFをPythonで読み込むためにはPIL(Python Image Library)を用います。次のコードではマルチページTIFFの30枚目から100枚目までを読み込み、512*512ピクセルにリサイズしてからFITCというnumpyリストに格納し、最後にFITC = np.array(FITC)によってnumpyの3次元配列に変換しています。

import numpy as np
import cv2

import sys, os
from PIL import Image
img_pil = Image.open("multipage.tif")
FITC = []

try:
    count = 30
    while count<=100:
        img_pil.seek(count)
        img = np.asarray(img_pil)
        img.flags.writeable = True
        img = cv2.resize(img,(512,512))
        FITC.append(img)
        count += 1
        print(count,end=",")
except EOFError:
    pass

FITC = np.array(FITC)
print(FITC.shape)