ZIPファイルから、skimage と PIL で 画像を読み込む
zip を解凍せずに処理していきたい(Diskを圧迫するため)。
import pandas as pd import numpy as np import skimage.io from PIL import Image, ImageFile import io def get_pil_inzip(_zip_path, image_idx): image_id = files_in_zip_dic[image_idx][0] image_path = os.path.join(image_id, 'images', files_in_zip_dic[image_idx][1]['images'][0]) with ZipFile(_zip_path) as zf: with zf.open(image_path) as f: image = Image.open(f) return image # 一度 BytesIO でバイナリファイルとして取り込む。 def get_skimage_inzip(_zip_path, image_idx): image_id = files_in_zip_dic[image_idx][0] image_path = os.path.join(image_id, 'images', files_in_zip_dic[image_idx][1]['images'][0]) with ZipFile(_zip_path) as zf: with zf.open(image_path) as f: img_bin = io.BytesIO(f.read()) image = skimage.io.imread(img_bin) return image