使用 CC-359 数据集进行 MRI 重建(二)
参考资料:https://github.com/Deep-Imaging-Group/MD-Recon-Net(这份资料的数据似乎和现在官网的数据格式不太一样)
在这篇博客里,我们将学会如何使用 CC-359 数据集中的数据。这里我们针对 CC-359 中的 single_coil 部分。
CC-359 官网下载地址为:CC-359数据集
由于访问官网需要科学上网,这里我也放了一份到百度网盘中,方便大家下载。提取码:c9yt
首先我们需要明确是,这份数据集以 numpy 数组形式存储,其中的数据是图像的频域数据。每个 .npy 文件的尺寸为(img_nums, 256, 256, 2), 第一维为该 .npy 文件所含 MRI 图片的数量,第二、三维为每张图片的宽高(256 x 256),最后一维2代表频域数据的实部和虚部。
mask 为采样模板,尺寸为(256,256),由 0 、1组成。这里我使用的是顶部所列“参考资料”里的mask,也可以通过百度网盘下载。提取码:722w
代码如下:
import torch
import matplotlib.pyplot as plt
import numpy as np
import scipy.io as siodef to_complex(data): # from data[256,256,2] to [256,256]complexdata = data[:,:,0] + 1j*data[:,:,1]return datafile_path = "/home/jinfeng/Desktop/Brain_workplace/Brain_datasets/Train/e13991s3_P01536.7.npy"
data = np.load(file_path)
# print(data.shape) # (170, 256, 256, 2),最后一维代表复数,实部和虚部分开存储
# mask 为所用的欠采样模板,(256,256)
mask = sio.loadmat("/home/jinfeng/Desktop/Brain_workplace/MD-Recon-Net-master/mask/brain/radial/radial_256_256_20.mat")['Umask']target_kspace = data[100] # (256,256,2), 全采样 k-空间数据,最后一维代表复数,实部和虚部分开存储
# K空间欠采样
under_kspace = np.zeros_like(target_kspace)
under_kspace[:,:,0] = np.fft.ifftshift(np.where(mask == 0, 0,np.fft.fftshift(target_kspace[:,:,0]))) #保留大部分低频成分
under_kspace[:,:,1] = np.fft.ifftshift(np.where(mask == 0, 0,np.fft.fftshift(target_kspace[:,:,1]))) #保留大部分低频成分
#转成 tensor,之后训练网络的时候需要
target_kspace_tensor = torch.from_numpy(target_kspace)
under_kspace_tensor = torch.from_numpy(under_kspace)
#(256,256) 目标图像,直接由全采样 k-空间数据逆傅立叶变换而来
target_img_tensor = torch.ifft(target_kspace_tensor, 2, normalized=True)
under_img_tensor = torch.ifft(under_kspace_tensor, 2, normalized=True)plt.figure()
plt.rcParams['figure.figsize'] = (20.0, 20.0)
plt.subplot(1,2,1)
plt.imshow(np.fft.fftshift(np.log(1+np.abs(to_complex(target_kspace_tensor.numpy())))),cmap='gray')
plt.title("full K space")plt.subplot(1,2,2)
plt.imshow(np.abs(to_complex(target_img_tensor.numpy())),cmap='gray')
plt.title("full image space")
plt.show()plt.figure()
plt.rcParams['figure.figsize'] = (20.0, 20.0)plt.subplot(1,3,1)
plt.imshow(mask,cmap='gray')
plt.title("mask")plt.subplot(1,3,2)
plt.imshow(np.fft.fftshift(np.log(1+np.abs(to_complex(under_kspace_tensor.numpy())))),cmap='gray')
plt.title("DownSample K space")plt.subplot(1,3,3)
plt.imshow(np.abs(to_complex(under_img_tensor.numpy())),cmap='gray')
plt.title("DownSample image space")
plt.show()
运行结果如下:
使用 CC-359 数据集进行 MRI 重建(二)相关推荐
- 深度学习MRI重建综述
参考文章: A review and experimental evaluation of deep learningmethods for MRI reconstruction 文字有点乱,可以看表 ...
- ML之分类预测:基于sklearn库的七八种机器学习算法利用糖尿病(diabetes)数据集(8→1)实现二分类预测
ML之分类预测:基于sklearn库的七八种机器学习算法利用糖尿病(diabetes)数据集(8→1)实现二分类预测 目录 输出结果 数据集展示 输出结果 1.k-NN 2.LoR 4.DT 5.RF ...
- 最近我MRI重建的一些进度
写这篇文章, 主要是因为我今天整理了最近一些研究的代码, 放到了git上, 想着既然整理完了, 那就顺便推广一下我的方法, 第一个想到的地方就是CSDN. 其实不论是MRI重建还是其他问题比如超分辨. ...
- 生成.sens格式数据集用于BundleFusion重建
BundleFusion算法离线重建输入为.sens格式数据集,这里我测试了官网的数据和两款深度相机采集的数据去进行格式转换,一个是Intel RealSense D435,一个是KinectDK. ...
- 微软BI 之SSAS 系列 - 多维数据集维度用法之二 事实维度(退化维度 Degenerate Dimension)...
这篇文章是基于上一篇 SSAS 系列 - 多维数据集维度用法之一 引用维度 Referenced Dimension 继续讲解多维数据集维度用法中的事实维度. 事实维度,顾名思义就是把事实表 Fact ...
- CC.Net 全接触系列之二: CCRC.Net : CC.Net 的一种另类使用方式
简介: ClearCase为不同需求的用户提供了不同的访问VOB的方式,使得用户能够根据所处的环境灵活地进行ClearCase客户端操作.CCRC是ClearCase的一种在Web环境下的客户端产品, ...
- iris数据集_sklearn日志(二)训练集和测试集划分
机器学习算法需要大量的数据,这些数据一部分用于模型训练,另一部分作为测试或验证. 机器学习入坑者:sklearn日志(一)体验官方提供的标准数据集zhuanlan.zhihu.com sklearn ...
- 基于Keras的IMDB数据集电影评论情感二分类
原创不易,如果有转载需要的话,请在首行附上本文地址,谢谢. 第一步加载IMDB数据集,如若加载不成功,这里提供一种解决方法:点开IMDB数据下载链接(喜欢的话给个小星星和follow一下),fork到 ...
- 镶嵌数据集工具小结(二)镶嵌数据轮廓线与边界
上一篇帖子说明了如何创建镶嵌数据集.添加栅格数据,以及相关的常用参数配置. 下面再接着说如何根据自己的各种需要来修改镶嵌数据集,这一贴的主题主要是如何创建.修改镶嵌数据集的轮廓线和边界. 修改镶嵌数据 ...
最新文章
- java 从mysql 导出到excel_JAVA实现在数据库导出到EXCEL并下载
- 数据中心网络架构 — 云数据中心网络 — 大二层网络技术
- php url无效,PHP解析URL并失去URL中的参数
- 设定游戏背景和英雄登场
- Redis数据结构以及对应存储策略
- sql截去最后一位_SqlServer从左边 最后 中间截取字符串
- java数字类型_Java数据类型
- wireguard握手报文结构
- 机器学习基础算法18- 鸢尾花数据集分类-随机森林
- Durable NAND flash memory management
- MarkDown编辑器中数学公式与符号-LaTeX 各种数学命令,符号
- 层次结构类毕业论文文献都有哪些?
- 基于pywifi库的暴力破解wifi方法
- Unity粒子特效系列-闪星星的宝箱
- 如何用photoshop给图片添加水印?
- 启动rabbitmq
- 一个好用的数学公式编辑器的下载安装(LaTeX)
- 考察思维的灵活性,僵化
- ios animation 动画效果实现
- 市场调查——定性研究方法
热门文章
- 怎么用显卡计算_初试CUDA,入门显卡实现两千倍加速
- onload 属性的作用
- html onload不起作用,body标签onLoad执行无效,为何?
- 浏览器的onload事件
- C语言美化控制台命令
- 工作日记---android lockscreen.java 在lock状态下显示charing和alarm
- 【Python】盘点全网下载量Top100的Python库
- C语言中6HZ怎么算,C语言基础课First作业
- 别用cmd了,配置一个比Mac终端还美的Windows Terminal——详细教程
- 计算机组成原理笔记|03存储系统