首页 > 解决方案 > 在 python 中将大型 numpy-array 读取为 czi 文件

问题描述

我有以下片段:

from aicspylibczi import CziFile
from pathlib import Path

pth = Path('/Volumes/USB/20x_HE.czi')
czi = CziFile(pth)

image, shp = czi.read_image(C=0, M=0)   # very slow

参数 C 和 M 用于将大数组切成小块。

该文件有 3.4GB 大,而且需要很长时间(使用 8GB RAM Macbook)所以我总是中止它。

我认为那不行,因为我想要数组的第一片,而不是整个矩阵。

标签: pythonnumpybioinformaticsarray-broadcasting

解决方案


您可以尝试 slideio python 包(http://slideio.com)。它利用内部图像金字塔。您可以以高分辨率读取部分图像或以低分辨率读取整个图像。下面的代码重新缩放图像,使传递的光栅的宽度为 500 像素(计算高度以保持图像大小比例)。

import slideio
slide = slideio.open_slidei(file_path="/data/a.czi",driver_id="CZI")
scene = slide.get_scene(0)
block = scene.read_block(size=(500,0))

推荐阅读