python - 在 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)所以我总是中止它。
我认为那不行,因为我想要数组的第一片,而不是整个矩阵。
解决方案
您可以尝试 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))
推荐阅读
- php - 从外部页面将表转储到 json
- php - ErrorException 未定义的偏移量:0
- angular - 我无法从角度调用 php 中的文件,显示 404 Not found
- c# - await slowest of two async methods
- r - 在 R 的箱线图中通过 outlier.shape=NA 更改 y_limit
- git - Git 'unable to unlink old file (permission denied)' error, but updating permissions doesn't work
- php - 待处理的帖子未显示在前端,但显示在 wordpress 的管理门户中
- omnet++ - .ini 文件中的 par() 意外行为
- system.reactive - 如何订阅 TypedEventHandler
使用 IObservable 的事件 - node.js - 如何使用 GitHub 操作导入私有数据?