在做CT图像的深度学习研究时,需要用到大量的CT数据,我从TCIA上下载的CT图像是.dcm文件的,每个.dcm文件代表一个slice,如图所示,下载的是Head-neck数据,

用matlab读取时,使用到dicomread()函数,如下

filepath = '000000.dcm'
info = dicominfo(fullfile(filepath));
image = dicomread(info);

这里只读取了一个slice,我们该如何批量读取.dcm文件呢?又如何把每层的图像数据进行排序?以下是参考代码:

主要有几点需要注意:

  1. 读取info中的层数信息,用于排序
  2. 把多余的空白数据删除
clear,clc%% reading files path
folder = './4/';         %%% 所有slice的文件夹ext = {'*.dcm'};
filepaths = [];for i = 1 : length(ext)filepaths = cat(1,filepaths,dir(fullfile(folder, ext{i})));   %%% 读取所有.dcm的文件
enda = length(filepaths);
data = zeros(512,512,a);     %%% 图片大小
Num = zeros(1,a);for i = 1:a info = dicominfo(fullfile(folder,filepaths(i).name));      %%% 读取CT图像的扫描信息No = info.SliceLocation;                                   %%% 读取该层的序号Num(i) = floor(No);
endvalue = min(Num(:));%% extrating number of slices
for i = 1:a info = dicominfo(fullfile(folder,filepaths(i).name));No = info.SliceLocation;Num0 = floor(No)+ abs(value)+1;                            %%% 对slicelocation进行从小到大的排序image = dicomread(info);data(:,:,Num0) = image;     % saving data, including blanks
end%% delete the blank
n_dim = size(data,3);
t = 1;
for j = 1: n_dimimg = data(:,:,j);if mean(img)==0rem(t) = j;t  = t + 1;else   end
enddata(:,:,rem) = [];     %% 删掉空白的层
n = size(data,3);temp = data;%% show and save the result
for i = 1:ndata(:,:,n-i+1) = temp(:,:,i);
end
for i = 1:nimshow(data(:,:,i),[])
endsave pat4.mat data    %%% 保存数据

CT的原始图像.dcm文件的读取相关推荐

  1. java读取dcm影像文件_使用dcmtk库读取.dcm文件并获取信息+使用OpenCV显示图像

    借助VS2013和OpenCV的绘图功能,在工程DICOMReader.sln中实现了对单张.dcm图像的读取与显示,以下是详细步骤. 前期准备工作 编译器:VS2013 库:dcmtk-3.6.0( ...

  2. python教程:读取.dcm文件,并转化为.jpg格式

    .dcm文件是DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信中记录医学图像和相关信息的文件,在用于医学图像处理的时候我们 ...

  3. dcmtk读取dcm文件中Tag值

    读取病人信息等,可根据宏定义自由设置读取其他信息,代码如下: { DcmFileFormat fileformat;OFCondition dcmFile = fileformat.loadFile( ...

  4. pydicom读取头文件_.dcm格式文件软件读取及python处理详解

    要处理一些.dcm格式的焊接缺陷图像,需要读取和显示.dcm格式的图像.通过搜集资料收集到一些医学影像,并通过pydicom模块查看.dcm格式文件. 若要查看dcm格式文件,可下echo viewe ...

  5. 【转】DCMTK 开源库的学习笔记2:直接操作dcm文件中像素数据的尝试

    转自:https://blog.csdn.net/zssureqh/article/details/8785132 DCMTK官网给出了JPEG格式压缩的DCM文件解压缩的方法(http://supp ...

  6. DICOM医学图像处理:DICOM存储操作之 “多幅JPG图像数据存入DCM文件”

    背景: 续上篇,继续介绍如何将多幅JPG图像数据存入DCM文件.即将有损压缩数据直接写入DCM文件,存储为Multi-frame形式. 多幅JPG图像数据存入DCM文件: 为了避免引起歧义,这里着重说 ...

  7. DICOM笔记-解析JPEG压缩格式DCM文件

      项目中使用了DICOM文件保存图像,之前经常遇到DICOM内放置的是short类型或者float类型的二维图像,按照之前的代码处理JEPG压缩的DICOM文件,当然会出现问题:从网上查到资料,是由 ...

  8. DICOM医学图像处理:DICOM存储操作之“多幅BMP图像数据存入DCM文件”

    背景: 本专栏"DICOM医学图像处理"受众较窄,起初只想作为自己学习积累和工作经验的简单整理.前几天无聊浏览了一下,发现阅读量两极化严重,主要集中在"关于BMP(JPG ...

  9. dicom文件的后缀_dcm文件扩展名,dcm文件怎么打开?

    .dcm 文件类型1:DiskCatalogMaker Catalog File 文件说明:Catalog format used by DiskCatalogMaker, a file catalo ...

最新文章

  1. 实现多种方式对MYSQL进行备份
  2. 基于MATLAB的面向对象编程(1)——类,属性,方法
  3. cf1051F. The Shortest Statement(最短路)
  4. android studio 反编译修改versioncode,在android studio 中修改versioncode 跟versionname(示例代码)...
  5. Java多线程编程中Future模式的详解
  6. html 文本横竖切换,(横竖屏切换/强制横屏)CSS3 transform 怎样才能中心旋转?
  7. 计算机网络(16)-计算机网络应用示例
  8. 如何使用ISO升级TrueNAS主要版本
  9. 使用 Python 第三方库 daft 绘制 PGM 中的贝叶斯网络
  10. github 提速方法
  11. excel乘法公式怎么输入_精选43个Excel表格的操作技巧| 推荐收藏
  12. scala学习手记15 - 独立对象和伴生对象
  13. linux内核 semaphore,Linux内核参数信号量semaphore设置
  14. 我的世界装mod要下java_【新人必看教程】我的世界HMCL下载安装mod模组
  15. face_recognition库的安装以及学习
  16. 运维(6) Nacos开启连接密码安全认证
  17. python msproject_MS Project(*.mpp文件)到PowerBi
  18. 图片标注软件labelImg使用指南
  19. 公众号第三方平台开发 教程三 微信公众号授权第三方平台
  20. MedianFlow中值流跟踪算法源码

热门文章

  1. 测试驱动开发(TDD)前端篇
  2. 误删环境变量Path解决方式汇总
  3. 值得收藏的英语名言大全
  4. Ubuntu20.04环境上在LXC内安装FRR
  5. Office2016文档如何缩印
  6. Excel·VBA数组行列转换函数
  7. BZOJ[1696][Usaco2007 Feb]Building A New Barn新牛舍 贪心
  8. hostapd2.9编译过程
  9. 聚观早报 | 国美回应拖欠员工工资;苹果开始在印度生产iPhone 14
  10. linux查看软件安装目录