BraTs2020数据集处理及python读取.nii文件 批量转图片

本文介绍了如何从BraTS2020数据集中加载MRI图像,包括T1和T2模态,然后进行批量切割,移除边界并将其调整为256x256尺寸,以便后续分析或模型训练。
摘要由CSDN通过智能技术生成

BraTs2020数据集下载地址https://aistudio.baidu.com/datasetdetail/225057
这是文件目录,代码在proccess_code下面
在这里插入图片描述
批量转图片


import nibabel as nib
import matplotlib.pyplot as plt
import numpy as np

path = '../BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/'
file_list = os.listdir(path)
file_list = file_list[146:]
print(file_list)
for file_item in file_list:
    sub_path = os.path.join(path,file_item)
    nii_list = os.listdir(sub_path)
    for nii_item in nii_list:
        if 't1.nii' in nii_item:
            print(nii_item)
            nii_path = os.path.join(sub_path,nii_item)
            img = nib.load(nii_path)
            # print(img.shape)  # shape(240, 240, 155)
            # print(img.header['db_name'])
            width, height, queue = img.dataobj.shape  # 由文件本身维度确定,可能是3维,也可能是4维
            # print("width",width)  # 240
            # print("height",height) # 240
            # print("queue",queue)   # 155
            # nib.viewers.OrthoSlicer3D(img.dataobj).show()
            choice=[20, 30, 60 ,70, 100, 110, 140, 150 ]
            num = 1
            for i in range(0, queue, 10):
                if i<50:
                    continue
                if i>120:
                    break
                # print(i)
                # if i not in choice:
                #     num += 1
                #     continue
                # print(i)
                img_arr = img.dataobj[:, :, i]

                # plt.subplot(5, 4, num)
                plt.tight_layout()
                plt.imshow(img_arr,)
                plt.savefig("../t1/"+nii_item[:-4]+'_'+str(i)+'_.png')

                num += 1
            # plt.show()
        elif 't2.nii' in nii_item:
            nii_path = os.path.join(sub_path,nii_item)
            img = nib.load(nii_path)
            width, height, queue = img.dataobj.shape  # 由文件本身维度确定,可能是3维,也可能是4维
            choice=[20, 30, 60 ,70, 100, 110, 140, 150 ]
            num = 1
            for i in range(0, queue, 10):
                if i<50:
                    continue
                if i>120:
                    break
                # print(i)
                # if i not in choice:
                #     num += 1
                #     continue
                # print(i)
                plt.tight_layout()
                img_arr = img.dataobj[:, :, i]
                # plt.subplot(5, 4, num)
                plt.imshow(img_arr, )

                plt.savefig("../t2/"+nii_item[:-4]+'_'+str(i)+'_.png')

                num += 1
            # plt.show()


对图片批量切割然后resize到256*256

import os

import cv2

def crop_border(image, y_up,y_down,x_left,x_right):
    height, width = image.shape[:2]
    # border_height, border_width = border_size

    cropped_image = image[y_up:height-y_down, x_left:width-x_right]

    return cropped_image

# 读取图像
# image = cv2.imread('../t1/BraTS20_Training_001_t1_50_.png')

# 指定要切掉的边框大小
# border_size = (55, 120)  # 假设要切掉上下左右各 10 个像素
y_up=59
y_down=53
x_left=144
x_right=127

# # 切割图像
# cropped_image = crop_border(image, y_up,y_down,x_left,x_right)
#
# # 显示切割后的图像
# cv2.imshow('Cropped Image', cropped_image)
# cv2.waitKey(0)
# cv2.destroyAllWindows()
#
# # 保存切割后的图像
# cv2.imwrite('cropped_image.jpg', cropped_image)

path  = '../t1'
file_list = os.listdir(path)
for file in file_list:
    subpath = os.path.join(path,file)
    image = cv2.imread(subpath)
    cropped_image = crop_border(image, y_up, y_down, x_left, x_right)
    cropped_image = cv2.resize(cropped_image, (256, 256))
    cv2.imwrite('../A/'+file, cropped_image)


path  = '../t2'
file_list = os.listdir(path)
for file in file_list:
    subpath = os.path.join(path,file)
    image = cv2.imread(subpath)
    cropped_image = crop_border(image, y_up, y_down, x_left, x_right)
    cropped_image = cv2.resize(cropped_image, (256, 256))
    cv2.imwrite('../B/'+file, cropped_image)
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: BRATS2020数据集是一个医学图像处理领域的著名数据集,包含了人类脑部瘤病例的医学成像数据和相关信息。这个数据集下载可以通过多种渠道进行。 首先,BRATS2020数据集的官方网站是一个可靠的下载来源,该网站提供了完整的数据集下载包以及数据集说明、评估任务和论文等相关信息。用户可以在该网站上注册登录并按照要求下载数据集。同时,也有多个开源社区和机构提供了BRATS2020数据集的备份下载,用户可以通过这些渠道获取数据集。 另外,为了方便研究者进行数据处理和模型实验,公共数据集分发平台(如Kaggle、GitHub等)也会提供BRATS2020数据集下载链接。通过这些在线平台下载数据集可能更加方便,但需要注意数据的完整性和来源方的权威性。 无论是从哪个渠道下载BRATS2020数据集,都需要认真查看数据集文件结构和说明,确保数据的完整性和准确性。此外,对于数据集的应用和二次研究,也需要遵守相应的道德和法律规范,尽可能减少对患者隐私和医学保密性的侵犯。 ### 回答2: Brats2020是一种医学图像数据集,用于脑肿瘤分割和识别。它包含有数百个病例且重点考虑了4种不同的肿瘤类型:胶质母细胞瘤,脑膜瘤,神经胶质瘤和脑室系统间隙瘤。 要下载这个数据集,你需要访问以下网站:https://www.med.upenn.edu/cbica/brats2020/data.html。 网站列出了数据集的信息,包括文件的格式,下载链接和一些有用的文档。 Brats2020数据集大约有100GB的大小,因此您需要较高的存储空间能力来下载和存储这些文件。 在下载之前,请确保您的硬件能够承受此负载。文件使用NiFTI格式进行处理,其中包括了图像和分割数据。 如果您是研究人员或医学专业人员,您可以通过该数据集获得关于脑肿瘤的深入理解。通过使用此数据集,您可以训练深度学习模型和计算机视觉系统以更好地识别和分割脑肿瘤。这将有助于提高医疗保健的精度和效率,进而为数百万受到脑肿瘤影响的人们提供更好的治疗机会。 总而言之,Brats2020是一个极为有价值的数据集,可以为研究人员和医疗从业人员提供许多有用的信息。如果你有兴趣使用它,请确保你有足够的存储空间,并且你正在购买一台高性能的计算机。 ### 回答3: 首先,我们来了解一下BRATS数据集。BRATS (Brain Tumor Segmentation) 数据集是作为 MICCAI 2012、2013年和2015年医学图像计算机辅助干预会议上的一个竞赛数据集被发布的。该数据集是专门用于大脑肿瘤分割的,包含了从多个匿名的脑部 MRI 影像扫描中提取的大脑肿瘤图像。这个数据集共有 6,634 个图像,分别来自 220 个患者的肿瘤 MRI 扫描。每个病人有四个影像(T1、T1-Gd、T2、FLAIR),使得数据集总共有四个部分。BRATS数据集对于进行深度学习的脑肿瘤自动分割等任务非常有用。 BRATS 2020是BRATS竞赛的2020年版本。使用新的数据样本(1024x1024x128的影像),以及四类肿瘤分割任务,即Necrotic and Non-Enhancing Tumor, Edema, Enhancing Tumor和Background. BRATS 2020 数据集中,每个病人有四个MRI模态,分别是 T1、T1-Gd、T2 和 FLAIR,每个MRI模态下面包含了标记图,分别对应着四个部分。BRATS2020数据集的具体下载过程如下: 1. 首先打开BRATS2020官网,网址为 https://www.med.upenn.edu/sbia/brats2020/data.html. 2. 下拉页面找到“Training Data”区域,在该区域里面有VSD.Brain.XX.O.MRI, VSD.Brain.XX.O.MRI_RAI, VSD.Brain.XX.O.OT, and VSD.Brain.XX.O.OT_RAI文件夹。 3. 分别下载这四个文件夹,每个文件夹大小分别为15GB, 58GB, 4GB, 13GB。 4. 下载完毕后进行解压,解压缩文件时我们需要注意确保所有文件路径都正确,同时需要保证每个MRI模态和对应的标记是匹配的。 5. 解压完成后,我们就可以使用这个BRATS2020数据集来训练我们的深度学习模型,以进行脑肿瘤分割等任务。 总之,BRATS2020数据集是一个非常重要的医学数据集,对于进行医学图像分析的深度学习任务来说非常有用。因此,我们可以按照上述步骤进行下载,并按照需要进行使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值