用途:Histolab 是处理数字病理全切片图像(WSI)的 Python 库,用于组织检测、从超大图像中提取图块,并为深度学习准备数据集。适合轻量级 WSI 图块流程:组织检测、构建 ML 训练图块数据集、H&E 染色处理及快速图块分析。若需端到端计算病理、细胞核分割、多重成像或空间转录组,应改用其他工具。
安装:histolab 0.7.0 需 Python >= 3.8 且 < 3.12、numpy 1.x,建议独立环境: uv venv --python 3.11 .venv-histolab uv pip install --python .venv-histolab "histolab==0.7.0" openslide-bin 注意 0.7.0 固定 numpy <= 1.24.4、scipy < 1.10.1、scikit-image < 0.19.4、openslide-python 1.3.1,无法与 numpy 2.x / Python 3.12+ 项目共用环境。OpenSlide 是 C 库,不随 wheel 打包,可用 openslide-bin 预编译二进制,或 macOS 上 brew install openslide、Debian/Ubuntu 上 apt install libopenslide0,否则导入会报错。
核心流程:用 Slide(path, processed_path=...) 加载切片并查看尺寸/层级;用 TissueMask 或 BiggestTissueBoxMask 检测组织;先用 tiler.locate_tiles(slide) 预览图块位置;再用 Random/Grid/Score 三种 tiler 之一提取。示例: from histolab.slide import Slide from histolab.tiler import RandomTiler slide = Slide("slide.svs", processed_path="output/") tiler = RandomTiler(tile_size=(512, 512), n_tiles=100, level=0, seed=42) tiler.locate_tiles(slide) tiler.extract(slide) 注意 0.7.0 中 n_tiles、seed、level、tile_size、check_tissue、tissue_percent 是构造参数,locate_tiles()/extract() 只接受 slide、可选 extraction_mask 及日志/样式参数。
主要能力:切片管理(加载 SVS、TIFF、NDPI 等,读取元数据、生成缩略图、处理金字塔层级);组织检测与掩膜(TissueMask 全部组织、BiggestTissueBoxMask 最大区域包围盒为默认、BinaryMask 自定义);图块提取(RandomTiler 随机采样、GridTiler 系统网格、ScoreTiler 按评分选优,评分器如 NucleiScorer、CellularityScorer);过滤器与预处理(RgbToGrayscale、OtsuThreshold、形态学过滤等,可用 Compose 串联);可视化(缩略图、掩膜叠加、图块位置预览、马赛克、评分分布)。
限制:版本较旧且依赖固定,需独立环境;OpenSlide 需单独安装;API 与旧版本不同;资料未提供收费、价格或平台信息。