基于Python的H&E染色结果标准化

本文介绍了一位网友如何使用Python代码,结合Vahadane算法对HE染色的病理切片图像进行结构保持颜色归一化和稀疏染料分离。作者分享了GitHub上的代码示例,并指导了如何在conda环境中安装必要的库,如OpenCV和SPAMS,以实现批量处理。
摘要由CSDN通过智能技术生成

HE染色图像标准化对于非计算机专业的人来说有点麻烦,啥都不会连当个脚本小子都不会

找到了一个网友写的python代码基于

A. Vahadane, T. Peng, A. Sethi, S. Albarqouni, L. Wang, M. Baust, K. Steiger, A. M. Schlitter, I. Esposito, and N. Navab, “Structure-Preserving Color Normalization and Sparse Stain Separation for Histological Images,” IEEE Trans. Med. Imaging, vol. 35, no. 8, pp. 1962–1971, 2016.

这篇文章代码在GitHub

GitHub - xindubawukong/Vahadane: Structure-Preserving Color Normalization and Sparse Stain Separation for Histological Images

需要安装spams和cv2,opencv在conda中安装

conda install opencv

spams win安装

pip install spams-bin

照着给出的示例改了改,也不会什么写代码反正能凑合着用,增加了一个批处理

import numpy as np
import matplotlib.pyplot as plt
import spams
import cv2
import utils
import os
from vahadane import vahadane
from sklearn.manifold import TSNE

%load_ext autoreload
%autoreload 2
%matplotlib inline

# 定义批量处理的源文件夹和目标文件夹
source_folder = './data/spleen/'
target_path = './data/spleen/K85-1-4.tif'
result_folder = './output/'  # 注意这里是结果文件夹而不是结果文件路径

# 获取源文件夹下的所有文件路径
source_files = os.listdir(source_folder)

# 遍历每个文件并进行处理
for file_name in source_files:
    # 构造完整的源文件路径和目标文件路径
    source_path = os.path.join(source_folder, file_name)
    
    # 使用 os.path.splitext() 分离文件名和扩展名
    file_name_without_extension, extension = os.path.splitext(file_name)
    
    # 构建输出文件名,加上 "Spleen-" 前缀
    result_file_name = "Spleen-" + file_name_without_extension + extension
    output_path = os.path.join(result_folder, result_file_name)  # 使用 output_path 保存当前文件的输出路径

    # 读取源图像和目标图像
    source_image = utils.read_image(source_path)

    # 如果成功读取了图像
    if source_image is not None:
        target_image = utils.read_image(target_path)
        vhd = vahadane(LAMBDA1=0.01, LAMBDA2=0.01, fast_mode=1, getH_mode=0, ITER=50)
        Ws, Hs = vhd.stain_separate(source_image)
        Wt, Ht = vhd.stain_separate(target_image)
        img = vhd.SPCN(source_image, Ws, Hs, Wt, Ht)
        cv2.imwrite(output_path, cv2.cvtColor(img, cv2.COLOR_RGB2BGR))  # 使用 output_path 作为结果文件的路径
        
    else:
        print("无法读取图像文件:", source_path)

注意目录和文件不要有英文,虽然原作者用的是.png格式不过不知道为啥我这里跑.png就报错

这东西麻烦是麻烦点,总比拍照片拍几天舒坦

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值