【代码已开源】基于Python的全切片(WSI)染色归一化工具,实现了reinhard, macenko, vahadane共三种方法,支持GPU加速

基于Python的全切片(WSI)染色归一化工具,实现了reinhard, macenko, vahadane共三种方法,支持GPU加速

为了应对数字病理切片受到不同中心、不同扫描设备的影响,先后有不同的研究提出了针对病理图像的染色归一化(stain normalization)方法。本仓库对三种染色归一化方式进行了封装,针对常见的病理图片处理流程实现了染色归一化工具

仓库地址

https://github.com/HaoyuCui/WSI_Normalizer

支持以下主流染色归一化方法

  1. Reinhard Reinhard, Erik, et al. “Color transfer between images.” IEEE Computer graphics and applications 21.5 (2001): 34-41.
  2. Macenko Macenko, Marc, et al. “A method for normalizing histology slides for quantitative analysis.” 2009 IEEE international symposium on biomedical imaging: from nano to macro. IEEE, 2009.
  3. Vahadane Vahadane, Abhishek, et al. “Structure-preserving color normalization and sparse stain separation for histological images.” IEEE transactions on medical imaging 35.8 (2016): 1962-1971.

更新 [10/2024]

感谢MIT协议开源库 cwlkr/torchvahadane ,WSI_Normalizer现在支持GPU加速的Vahadane方法,在较大分辨率的patch上能够达到2倍以上的速度提升

安装

  1. 克隆本仓库
    git clone https://github.com/HaoyuCui/WSI_Normalizer.git
    
  2. 进入到根目录,激活虚拟环境,运行 pip install -r requirements.txt 安装依赖文件,如果需要GPU加速的版本,需要额外安装pytorch-gpu, scipy, kornia (可选)

运行

  1. 在运行前,确保在原始文件夹这样组织patch块(后缀名支持.png,.jpg和.jpeg)

    ├── data
    │   ├── slide_1
    │   │   ├── patch_1.png
    │   │   ├── patch_2.png
    │   │   ├── ...
    │   ├── slide_2
    │   │   ├── patch_1.png
    │   │   ├── patch_2.png
    │   │   ├── ...
    │   ├── ...
    │   └── slide_n
    │       ├── ...
    │       └── patch_n.png
    
  2. 然后,修改以下参数
    <TARGET FOLDER> 原始文件夹,存储了以上述树状格式组织的patch块
    <OUTPUT FOLDER> 输出文件夹
    <NORM METHOD> 染色归一化方法,请确保参数位于reinhard, macenko, vahadane, vahadane-gpu
    <TARGET IMAGE> 染色参考图片(可以是数据集中的一员)

    请注意,考虑到硬件IO,vahadane-gpu在224及256这类分辨率下的效果和vahadane几乎没有区别,只有在512、1024或者更大的分辨率下,能够达到2倍甚至更快的速度提升,请根据实际情况使用

    然后运行

    python main.py --target_dir <TARGET FOLDER> --output_dir <OUTPUT FOLDER> --method <NORM METHOD> --target_img <TARGET IMAGE>
    
  3. 程序将会在<OUTPUT FOLDER>自动生成与 <TARGET FOLDER> 一致的目录结构

  4. 本仓库提供了一个示例脚本,可供直接运行:

    python main.py --target_dir eg/origin --output_dir eg/norm --method vahadane-gpu --target_img eg/standard.jpg
    
  5. 运行结果如下:
    请添加图片描述

如果有问题,欢迎联系我。
欢迎Star、点赞和收藏,转载请注明出处,谢谢!

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值