update: 2019-4-10 系统化梳理以及增加详细内容

希望有深度学习、机器学习以及医学图像处理相关领域的老师、同学进行指导!

个人博客:WangW Blog

首发于CSDN


本文主要梳理了关于病理切片的处理,让刚进入病理图像处理领域的朋友能够将注意力放在深度学习、机器学习等算法上。本文主要包含KFB格式2TIFF(或SVS)病理图像的标记病理图像掩码(Mask)的生成以及病理切片补丁图像(Patches)的生成,最后介绍一个有关病理图像分类的repo。


1. KFB格式转成TIFF(或者SVS)格式

KFB格式的全视野数字病理切片(Whole slide images, WSIs)是国内一种病理切片扫描仪扫描出来的私有格式,该扫描仪是宁波江丰生物信息技术有限公司的一款产品。如果您是病理医生,仅仅需要读取以及简单的标记KFB文件,只需要下载K-Viewer进行读取就好了。那如果需要对WSIs进行一系列操作,比如图像识别、分类、检测等等,那么就需要将该公司的私有KFB格式转成通用的TIFF或者SVS进行操作了。使用公司的软件进行格式转换,具体操作都在文档中,请下载使用。

1. 如果你有C币,请使用该链接下载;

2. 如果没有C币,请使用该链接免费下载,请给个star哦,笔芯;


2. 全视野数字切片(WSIs)的标记

众所周知的是,WSI像素十分夸张,一般的图片浏览软件也打不开,那么标记就成了我们需要头疼的事了。但是铁头娃永远不会头疼…请看官接着往下看

2.1. 标记文件(XML)的获取

假如你想对自己的数据进行标记(废话,不是自己的数据,就不需要转格式),尝试使用ASAP吧。
使用ASAP打开需要标注的WSI,选择你需要用的标注类型(包含点、矩形、多边形等),对数据进行标注,如下图:1表示标记类型,我这里选择了多边形;2表示标注的区域;3表示标注名字;4表示标注的种类(下面会用到)

注意: 请将同一类型的标注,通过图上4按钮新建group,并将标注们放到一个Group下。方便后续的程序处理;
实例: 我需要对WSI进行癌区域标注,如上图得到了4块区域,然后,我新建一个Goup,将同类型tumor 4 块区域都放入一个Goup下,进行保存。这样就完成了wsi的标记。

2.2 WSI标记掩码(mask)的获取

其实,上面的标注文件**.xml已经完成满足平常DLer的需求了,但是有些同学可能想要WSI的掩码图,ASAP也为这些朋友提供了方便的API。如下:

Configure your PYTHONPATH environment variable to contain the /bin directory path.
大体就是建立一个PYTHONPATH名字的环境变量,找到你安装ASAP的路径,将路径>>到/bin 这个路径放在PYTHONPATH环境变量中,这样,python就可以自动搜索到这个包了哦。

使用下面官方的demo进行掩码的生成。

import multiresolutionimageinterface as mir
reader = mir.MultiResolutionImageReader()
mr_image = reader.open('camelyon17/centre_0/patient_010_node_4.tif')
annotation_list = mir.AnnotationList()
xml_repository = mir.XmlRepository(annotation_list)
xml_repository.setSource('camelyon17/centre_0/patient_010_node_4.xml')
xml_repository.load()
annotation_mask = mir.AnnotationToMask()
camelyon17_type_mask = True # _0 等就是你自己设置的group,ASAP默认group为Annotation Group *
label_map = {'metastases': 1, 'normal': 2} if camelyon17_type_mask else {'_0': 1, '_1': 1, '_2': 0}
conversion_order = ['metastases', 'normal'] if camelyon17_type_mask else  ['_0', '_1', '_2']
annotation_mask.convert(annotation_list, output_path, mr_image.getDimensions(), mr_image.getSpacing(), label_map, conversion_order)

注意的是:自己的标注种类请与代码一致。


3. WSI补丁的生成

以上的步骤已经完全将WSI处理成通用的格式了,但是在处理WSI图片识别问题上,目前,通用的方法是将WSI分成补丁图片(比如256*256像素),然后再利用深度学习、机器学习等方法对其进行处理。


4. 病理癌转移检测

这是我做的第一个项目CAMELYON16,该项目的输入为WSIs以及其标注XML类型文件,输出为wsi热力图。主要分别采用了PyTorch, Keras框架进行训练。欢迎大家fork,如果对您有所用处,欢迎点赞哦,欢迎交流!


5. 后记

主要分析了whole slide images的预处理~~~


全视野数字切片(whole slide images, WSIs)的预处理相关推荐

  1. 全视野数字切片(whole slide images, WSIs)的预处理,KFB,SVS,NDPI

    https://blog.csdn.net/weixin_41787032/article/details/79782472 https://github.com/mjiansun/kfb2svs

  2. t-sql判断一个字符串是否为bigint的函数(全角数字需要判断为不合格)

    作者: 左其盛 发表于 2010-07-18 22:30 原文链接 阅读: 131 评论: 0 最近在做的一个项目遇到这么一个问题:需要把一个字符串格式的卡号转换为bigint格式的卡号.t-sql自 ...

  3. C# 全选中数字文本框内容

    /// <summary>         /// 全选中数字文本框内容         /// </summary>         /// <param name=& ...

  4. jquery正则表达式验证:验证全是数字

    需求说明: 前端页面使用正则表达式验证输入框中输入的内容全是数字. 代码说明: 这里只介绍正则表达式,其他部分的代码不做介绍.如果有其他需要自行修改即可. 步骤一:建立一个页面可以是html.jsp等 ...

  5. c语言c判断字符数字,c语言问题求教 利用函数判断字符串中是否全为数字

    c语言问题求教 利用函数判断字符串中是否全为数字 答案:4  信息版本:手机版 解决时间 2018-12-22 19:42 已解决 2018-12-22 08:52 c语言问题求教 利用函数判断字符串 ...

  6. Oracle中如何判断字符串是否全为数字

    Oracle中如何判断字符串是否全为数字 学习了:http://www.cnblogs.com/zrcoffee/archive/2012/12/11/2812744.html 本文介绍了判断字符串是 ...

  7. 在填写表单中输入全角数字的解决方案

    我们经常需要用户在表单中输入数字,用户不小心使用了全角状态输入数字,但是在程序中全角的数字是不能直接转换为数字的.这种全角数字的错误处理起来就有些麻烦了.对一些没有经验用户来说明明已经输入数字了,怎么 ...

  8. Java中判断一个字符串全为数字和字母

    1.使用字符和整数转换 //判断一个字符串中是否全为字母 public static boolean isAllLetters(String str) {char[] chars=str.toChar ...

  9. sqlserver 字符串中是不是全为数字

    全为数字 select * from tablename where columname not like '%[^0-9]%' 是不是包含数字 ISNUMERIC 转载于:https://www.c ...

最新文章

  1. Java时间操作工具类
  2. 2021第六届数维杯大学生数学建模竞赛赛题_A 外卖骑手的送餐危机
  3. Centos7.X通过rpm包安装Docker
  4. 什么原因导致芯片短路_华为为什么突然大量用起了联发科芯片,或是这三个产品策略原因...
  5. java断言assertequals_如何实现Java测试的自定义断言
  6. servlet和struts2一起使用,实现绝对路径下的图片输出到jsp页面
  7. PCIE万兆网卡-华硕XG-C100C
  8. 全国多地元旦迎雾霾天气 京津冀霾明天短暂减弱
  9. css的部分应用示例
  10. 经济学家德鲁克的三个故事
  11. js去除空格12种方法
  12. 动态EXCEL数据透视表
  13. Eucalyptus使用注意事项
  14. netlogo笔记(4):森林火灾模拟与模型改进
  15. 栈和队列的一些相同点和不同点
  16. Windows Server 2008 各版本介绍
  17. 【集合】CFdiv.2#600B Silly Mistake
  18. 前端单元测试到底要怎么写?看这一篇就够了
  19. Mac 在指定目录下打开终端的方式
  20. 外汇交易提醒:美元三连阴创逾一周新低,欧洲央行或准备更大幅度加息

热门文章

  1. Distributed Lock
  2. 一名软件开发工程师电脑上的各桌面应用
  3. 带你走进云原生数据库界扛把子Amazon Aurora
  4. 计算机软件文档编制规范
  5. 仿作小米官网-乞丐版
  6. react后台管理系统项目总结
  7. windows下的makefile教程
  8. 让小程序搭上百度AI的快车
  9. Microsoft Project 2010 简介
  10. NetApp 人工智能解决方案