数据读取

if overwrite or not os.path.exists(config["data_file"]):training_files = fetch_training_data_files()write_data_to_file(training_files, config["data_file"], image_shape=config["image_shape"])
data_file_opened = open_data_file(config["data_file"])

config[“overwrite”] = True在main中调用调用函数fetch_training_data_files
把所有nii文件的路径都保存在training_files里
看下面的fetch_training_data_files()详解

def fetch_training_data_files(data_dir, return_subject_ids=True):training_data_files = list()subject_ids = list()for subject_dir in glob.glob(os.path.join(data_dir, "*", "*")):subject_ids.append(os.path.basename(subject_dir))subject_files = list()for modality in config["all_modalities"]+["truth"]:subject_files.append(os.path.join(subject_dir, modality + ".nii.gz"))training_data_files.append(tuple(subject_files))if return_subject_ids:return training_data_files, subject_idselse:return training_data_files

training_files包含训练数据文件的元组tuple列表。 在每个元组tuple中,几种模式应该以相同的顺序列出。 每个元组中的最后一项必须是带标签的图像(truth)。
例如:
[(‘sub1-T1.nii.gz’, ‘sub1-T2.nii.gz’, ‘sub1-truth.nii.gz’),
(‘sub2-T1.nii.gz’, ‘sub2-T2.nii.gz’, ‘sub2-truth.nii.gz’)]
write_data_to_file 功能是接收一组训练图像并将这些图像写入hdf5文件,在data文件中具体分析

config[“data_file”]是要将hdf5文件写入的位置。其定义为

config["data_file"] = os.path.abspath("brats_data.h5")#返回绝对路径
data_file_opened = open_data_file(config["data_file"])

最后用函数open_data_file()读取table文件的数据.

   __file__表示了当前文件的pathos.path.dirname((__file__)就是得到当前文件的绝对路径

os.path.join()函数:连接两个或更多的路径名组件

os.path.dirname(path)功能:去掉文件名,返回目录

先用os.path.dirname返回当前文件(夹)的绝对路径,再用join把他和data,preprocessed连接起来,最后用glob寻找其下的所有图像文件夹,并循环遍历

for subject_dir in glob.glob(os.path.join(os.path.dirname(__file__), "data", "preprocessed", "*", "*")):

创建一个子文件路径来保存preprocessed文件夹下各个图像文件夹里的nii文件的路径

config["all_modalities"] = ["t1", "t1ce", "flair", "t2"]
config["training_modalities"] = config["all_modalities"]

把所有的路径都加到training_data_files里并返回

subject_files.append(os.path.join(subject_dir, modality + ".nii.gz"))
training_data_files.append(tuple(subject_files))

————————————————
版权声明:本文为CSDN博主「liyihao76」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38736504/article/details/106605903

学习记录——brats数据处理相关推荐

  1. R语言数据处理学习记录--使用linkET包完成mental test

    R语言数据处理学习记录–使用linkET包完成mental test 注:本文仅作为自己的学习记录以备复习查阅 一 简单介绍一下 这个包依旧是来自于GitHub上,作者给出的介绍:linkET的目标是 ...

  2. 王爽 16 位汇编语言学习记录

    以下为汇编学习记录,内容全部出自王爽的16位<汇编语言>,如有错误,可直接去查看原书. 汇编语言   机器语言是机器指令集的集合,机器指令是一列二进制数字,计算机将其翻译成高低电平,从而使 ...

  3. ML、DL、CNN学习记录3

    文章目录 ML.DL.CNN学习记录3 Transfer Learning ML.DL.CNN学习记录3 # coding: utf-8 # Date:2020/8/15 19:16 # @Autho ...

  4. R语言基础学习记录4:重要函数

    时间: 2018-07-18(学习) 2018-07-22(学习记录) 教程:慕课网 <R语言基础> 讲师:Angelayuan 补充内容: R语言常用函数总结大全.gl()函数 学习内容 ...

  5. Java学习记录_1:MOOC《零基础学Java语言》课后习题解

    Hey,我是寒水,一名大二学生,电子商务专业在读,正在学习Java中.我试图将在Java学习中遇到的一些困惑和最终的解答发在这个账号上,希望以此来激励我不要放弃学习! 在学习记录这个专题中,我收藏一些 ...

  6. scrapy框架菜鸟学习记录

    scrapy框架菜鸟学习记录 scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架.其可以应用在数据挖掘,信息处理或储存历史数据等一系列的程序中.其最初是为了页面抓取(更确切的说,网络抓 ...

  7. 【记录】数据处理方法总结及实现

    [记录]数据处理方法总结及实现 背景 数据增强作为前处理的关键步骤,在整个计算机视觉中有着具足轻重的地位: 数据增强往往是决定数据集质量的关键,主要用于数据增广,在基于深度学习的任务中,数据的多样性和 ...

  8. 三维荧光平行因子学习记录--(二)荧光区域积分(FRI)

    三维荧光平行因子学习记录–(二)荧光区域积分(FRI) 注:本文仅作为自己的学习记录以备以后复习查阅 所有步骤和代码参考知乎上两位大佬在这里po一下他们的主页: https://www.zhihu.c ...

  9. IDL学习记录和Java调用IDL方法

    IDL学习记录和Java调用IDL方法 2018年02月06日 08:32:02 回首1949 阅读数:385更多 个人分类: 随想 版权声明:乐呵乐呵得了 https://blog.csdn.net ...

最新文章

  1. python好多模块和c相识_快速实现python c扩展模块
  2. linux命令运行中,输入命令,如果输入错误,怎么删除?
  3. python查找文件内容_python实现搜索文本文件内容脚本
  4. Apache vs Lighttpd vs Nginx对比
  5. lede旁路由作用_高频旁路电容器作用及工作原理
  6. ruby中数组的常用函数
  7. 2021 CSDN查看自己关注的人
  8. Tire树(字典树)
  9. 哪位大神能帮我解读下这段代码什么意思吗???万分感谢
  10. 点集拓扑——基本知识点整理归纳
  11. 使用elastix搭建IP电话及传真
  12. IP交换机与路由器配置
  13. 游戏机生产厂家不朽的神迹碎片系统详细攻略心得
  14. 前端性能优化-对图片进行后压缩发向后端
  15. Kafka:Docker Compose部署Kafka集群
  16. HTML设置背景图片
  17. 敢问中科院计算所副研究员刘俊明:为何看不到中文编程的需求和优势?
  18. linux终端声音设置,终端命令设置音量?
  19. #1636 : Pangu and Stones(区间dp)
  20. java图形化Swing教程(一)

热门文章

  1. 使用adb命令冻结/解冻安卓后台进程
  2. practical vim2 笔记
  3. PD QC AFC 受电端协议芯片
  4. newbee-mall -- 挺不错的开源电商项目
  5. Java语言的数学类(Math)提供的一些常用数学方法
  6. 3个月软件测试培训出来后的感悟--写给正在迷茫是否要转行或去学软件测试的学弟们
  7. 关系数据库系统RDBMS与面向对象数据库管理系统ODBMS优缺点比较
  8. 孙燕姿的档案!!!!!!!!!!
  9. C++ - 使用std::chrono获取当前秒级/毫秒级/微秒级/纳秒级时间戳
  10. 用波特五力模型分析法针对对AI音箱进行竞争态势分析