MR图像预处理(5)——MR图像处理成Yolov5,UNet格式数据

      代码实现:输入全部患者文件夹,自动把图像根据标签有无分类,保存为dcm,png两种格式。然后对有标签的数据进行再次处理,处理成Yolov5和UNet需要的数据。

      代码运行:把患者文件夹放在patient_group文件夹中,run一下main.py文件,等待时间取决于患者数目,然后所有的结果都会在对应文件夹

       现在医学图像处理的工作很多人在做,一些预处理的事情比较繁琐,但又没有太多实质性内容,所以我想生成一份普适性较强的MR图像预处理的代码,方便大家进行聚焦于模型结构的提升上,减少预处理时间。

       这里先简单讲一下如何使用代码,要注意的规范,具体内容不展开。

代码在最上面,应该是免费的!!!!

一,数据格式规范

      在把数据扔到代码之前,确保你的数据中每个患者是如下的格式:(否则你需要修改一下里面的函数)。

1.patient_group里面可以放多位患者,每一个患者是一个文件夹。

2.点进patient_group,应该有具体的数据文件(数据文件名称是检查日期,不过叫什么都没关系)和一个nii.gz文件(也可以部分没有nii.gz)没有的会被分类进无标签的文件夹,用作测试。

3.点进数据文件,就是各种MR的图像,选择你想要提取的那个文件夹(在第三部分会讲怎么修改)。我提取的是701015或601015(这两个对应T2W_TSE),这两个文件夹患者只会存在一个。

4.点进想要提取的数据文件夹,应该如下所示,全是dcm文件。

在修改好这些数据,确定格式符合就可以跑main.py代码

二,结果展示

每个文件夹的介绍如下图所示:

unlabeled_results,labeled_results,dcm_select_all三个文件夹如下:

label_process_results中的results_compare如下:

yolo_data中的bounding_image如下:

三,可能遇到的问题的解决方法

(大家要是遇到其他问题可以私信我或者评论,我来看看怎么修改代码,我第一次写,写完发现模块做的不是特别好,子函数也还没完全写完,可能整体没问题,但是模块模块之前存在bugbug负负得正的情况)

问题一

我需要的文件夹不是701015或者601015怎么办?

进入dcm_select.py文件,把里面的判断语句改成你需要的文件夹即可。

问题二

索引数组超出范围?

可能是由于特定的文件名称不匹配(因为重新分类文件用了原文件名的部分来重命名)以下划线截断,取最后一段字符作为新文件名称的部分,所以可能导致报错。

所以请至少保证患者的dcm文件名称有一个下划线,或者也可以修改代码,把文件名称修改一下。

在dcm_select.py中,把f_new_name中split_root部分删除(确保和原来名字无关),如果还有问题可以私信我

问题三

我只需要单独的Yolo或者UNet数据,希望代码快一点怎么办?

目前还没有编写单独的函数,有需求的话后续继续编写。

  • 24
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值