数据集是LITS2017,任务是在3D下进行批量进行预处理,包括重采样与归一化,最后再以nii格式保存。

解压之后大概是volume和segmentation,volume是ct原图,segmentation是对应的ground truth,3D格式保存在nii文件中。

第一步是打算先读取长宽维度,转化为numpy形式重采样与归一化,然后再以nii格式保存

1、读取长宽维度(512×512×75)

import cv2
import numpy as np
import nibabel as nb
import os
import matplotlib.pyplot as pltct_fil='D:/volume_0.nii'
#=os.listdir('H:/医学公开数据集/LIST2017/LIST2017/segmentation')
'''
分别读取nii文件夹,volume为原始ct图像,segmentation为分割结果
'''
img=nb.load(ct_fil)
print(img)
print(img.header('db_name'))width,height,queue=img.dataobj.shapenum=1
for i in range(0,queue,10):img_arr=img.dataobj[:,:,i]plt.subplot(5,4,num)plt.imshow(img_arr,cmap='gray')num+=1plt.show()

批量获取nii格式的array

import cv2
import numpy as np
import SimpleITK as itk
import os
import matplotlib.pyplot as plt
import nibabel as nibdef nii(niifile):filename=os.listdir(filepath)for i in filename:path=os.path.join(filepath,i)img=itk.ReadImage(path)array=itk.GetArrayFromImage(img)print(array.shape)filepath='D:/volume/'
nii(filepath)

origin

import cv2
import numpy as np
import SimpleITK as itk
import os
import matplotlib.pyplot as plt
import nibabel as nibdef nii(niifile):filename=os.listdir(filepath)for i in filename:path=os.path.join(filepath,i)img=itk.ReadImage(path)origin=np.array(img.GetOrigin())print(origin)filepath='D:/volume/'
nii(filepath)

一个预处理的代码,刚开始学习python连os都不会,学习之后可以进行批量处理了

import numpy as np
import SimpleITK as itk
import os
import matplotlib.pyplot as plt
import nibabel as nibdef nii(files,newspacing=[0.7,0.7,1.0]):   #设定新spacing为0.7,0.7,1.0#filename=os.listdir(filepath)for i in (files):#path=os.path.join(filepath,i)img=itk.ReadImage(path+i)   #读取niifilename,fileexp=os.path.splitext(i)  #get filenameoriginal_spacing=img.GetSpacing()  #get spacingoriginal_size=img.GetSize()    #get sizenew_size=[int(np.round(original_size[0] * original_spacing[0]/  newspacing[0])),int(np.round(original_size[1] * original_spacing[1] / newspacing[1])),int(np.round(original_size[2] * original_spacing[2] / newspacing[2]))]    #新sizeresample=itk.ResampleImageFilter()resample.SetOutputDirection(img.GetDirection())resample.SetOutputOrigin(img.GetOrigin())resample.SetSize(new_size)resample.SetOutputSpacing(newspacing)newimg=resample.Execute(img)#itk.WriteImage(newimg, './resample.nii')vol=newimg/255   #归一化#newvol=nib.Nifti1Image(vol,affine=None)#print(vol.shape)#outfile = 'D:/re/'itk.WriteImage(vol,'D:/test1/'+filename+'.nii')  #save and new files#return volpath='D:/test/'   #volume文件所在路径
#savepath='D:/volume/re/'
files=os.listdir(path)  #获取文件
nii(files)

LITS数据预处理(一)相关推荐

  1. 机器学习PAL数据预处理

    机器学习PAL数据预处理 本文介绍如何对原始数据进行数据预处理,得到模型训练集和模型预测集. 前提条件 完成数据准备,详情请参见准备数据. 操作步骤 登录PAI控制台. 在左侧导航栏,选择模型开发和训 ...

  2. 深度学习——数据预处理篇

    深度学习--数据预处理篇 文章目录 深度学习--数据预处理篇 一.前言 二.常用的数据预处理方法 零均值化(中心化) 数据归一化(normalization) 主成分分析(PCA.Principal ...

  3. 目标检测之Faster-RCNN的pytorch代码详解(数据预处理篇)

    首先贴上代码原作者的github:https://github.com/chenyuntc/simple-faster-rcnn-pytorch(非代码作者,博文只解释代码) 今天看完了simple- ...

  4. 第七篇:数据预处理(四) - 数据归约(PCA/EFA为例)

    前言 这部分也许是数据预处理最为关键的一个阶段. 如何对数据降维是一个很有挑战,很有深度的话题,很多理论书本均有详细深入的讲解分析. 本文仅介绍主成分分析法(PCA)和探索性因子分析法(EFA),并给 ...

  5. 数据预处理--噪声_为什么数据对您的业务很重要-以及如何处理数据

    数据预处理--噪声 YES! Data is extremely important for your business. 是! 数据对您的业务极为重要. A human body has five ...

  6. 数据预处理(完整步骤)

    原文:http://dataunion.org/5009.html 一:为什么要预处理数据? (1)现实世界的数据是肮脏的(不完整,含噪声,不一致) (2)没有高质量的数据,就没有高质量的挖掘结果(高 ...

  7. 3D目标检测深度学习方法数据预处理综述

    作者 | 蒋天元 来源 | 3D视觉工坊(ID: QYong_2014) 这一篇的内容主要要讲一点在深度学习的3D目标检测网络中,我们都采用了哪些数据预处理的方法,主要讲两个方面的知识,第一个是rep ...

  8. 整理一份详细的数据预处理方法

    作者:lswbjtu https://zhuanlan.zhihu.com/p/51131210 编辑:机器学习算法与Python实战 为什么数据处理很重要? 熟悉数据挖掘和机器学习的小伙伴们都知道, ...

  9. pandas数据预处理(标准化归一化、离散化/分箱/分桶、分类数据处理、时间类型数据处理、样本类别分布不均衡数据处理、数据抽样)

    1. 数值型数据的处理 1.1 标准化&归一化 数据标准化是一个常用的数据预处理操作,目的是处理不同规模和量纲的数据,使其缩放到相同的数据区间和范围,以减少规模.特征.分布差异等对模型的影响. ...

最新文章

  1. 超详细的Guava RateLimiter限流原理解析
  2. 利用oracle快照dblink解决数据库表同步问题
  3. sklearn支持gpu_Keras Sklearn随机搜索GPU OOM
  4. 聊聊flink的FencedAkkaInvocationHandler
  5. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1054:三角形判断
  6. HomeWindowsYesPlayMusic – 一个好看的第三方xx云音乐客户端 YesPlayMusic
  7. lz0-007 读书笔记03
  8. Python中使用Unicode对中文进行编码和解码
  9. hbase 和 zookeeper建立连接_我对Hbase的一些理解——HMaster与Zookeeper之间的交互机制...
  10. Pycharm远程调试:变量内容加载过慢或不能加载
  11. Java微服务:这个画饼是个谎言,但你却不能忽视它
  12. 索罗斯说,我投机了,但我不觉得我做错了什么,我做的都是合法的。
  13. jQuery进度条加载插件
  14. 同一网段两台电脑共享文件
  15. Windows系统下CMD添加删除用户、用户组
  16. 使用OpenCV调用摄像头检测人脸并截图-Python
  17. Java中world、PDF、Excel转图片
  18. windows下使用GRUB2 制作支持BIOS和UEFI的WINPE、LINUX、MAXDOS多引导U盘
  19. Python的基本知识
  20. 大二Web课程设计期末考试——基于HTML+CSS+JavaScript+jQuery电商类化妆品购物商城

热门文章

  1. Java位逻辑运算符优先级和短路原则
  2. 这些软件让你的操作更加顺畅
  3. 广工物理实验报告-用拉伸法测量杨氏模量
  4. 机器学习之超参数优化 - 网格优化方法(对半网格搜索HalvingSearchCV)
  5. 708-Linux内存管理实验
  6. 通用环形缓冲区 LwRB 使用指南
  7. 数据预处理的分箱操作
  8. c语言已知次数的循环,C语言 循环结构总结
  9. Unity快速入门之三 脚本与事件
  10. 传智播客超级设计师在线就业班招生啦