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. vs2015 x86 opencv3.3(编译)
  2. 为什么使用Binder而不是其他IPC机制
  3. IE9:为什么 Acid3 无足轻重
  4. 独占锁、共享锁、更新锁,乐观锁、悲观锁
  5. Windows10+VS2017下GSL1.8_x86和sundials2.5.0配置及GITHUB项目schneider_et_al_2016_animaldiversity编译运行
  6. java 停止kettle转换_通过java运行Kettle转换
  7. 清晨一杯水,到底怎么喝才算健康?
  8. 交通运输部·车载导航系统——终端如何与服务器通信——玩转通信协议(源码下载)...
  9. 数字的与或非处理表中的多个状态(二)
  10. 【干货分享】大话团队的GIT分支策略进化史
  11. latex表格排版指南
  12. 个人博客登录注册部分
  13. Warning: Procedure created with compilation errors.
  14. alienware Win8 系统安装
  15. 坐车看书的人都是在装逼?
  16. 形式语言与自动机 Part.4 正则语言,2DFA,MealyMoore机
  17. 使用新版Mendeley自动插入参考文献,并修改得到GB/T 7714-2005格式
  18. 【Android -- 相机】Camera2 实现拍照 预览功能
  19. 计算用户的平均次日、三日和七日留存率
  20. WinForm使用Prism和DryIoc实现跨窗体数据绑定

热门文章

  1. 基于spring的系统设计与开发ADD ME
  2. MRI脑成像网络构建笔记1
  3. 第三次工业革命的标志是电子计算机的使用,第三次工业革命的标志
  4. sparkstreaming之实时数据流计算实例
  5. 若A为病态矩阵,B与A相似, 那么矩阵B是否也是病态矩阵?
  6. 红米note4x刷android,红米Note4X刷魔趣固件笔记
  7. RK3288 RK3368 瑞芯微RK系列Android生成OTA差分升级包
  8. 耶鲁大学 博弈论(Game Theory) 笔记4-足球比赛与商业合作之最佳对策
  9. 人性的弱点(卡耐基)读书笔记
  10. DAMA数据治理学习笔记-数据治理