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

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

filepath = '000000.dcm'

info = dicominfo(fullfile(filepath));

image = dicomread(info);

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

主要有几点需要注意:

读取info中的层数信息,用于排序

把多余的空白数据删除

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的文件

end

a = 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);

end

value = 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_dim

img = data(:,:,j);

if mean(img)==0

rem(t) = j;

t = t + 1;

else

end

end

data(:,:,rem) = []; %% 删掉空白的层

n = size(data,3);

temp = data;

%% show and save the result

for i = 1:n

data(:,:,n-i+1) = temp(:,:,i);

end

for i = 1:n

imshow(data(:,:,i),[])

end

save pat4.mat data %%% 保存数据

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

  1. CT的原始图像.dcm文件的读取

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

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

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

  3. python将医学dcm文件数据信息转换为excel文件

    分析结果展示 打开解析dcm信息后对应的excel文件,所有关键字段都录入到excel中,解决了日常处理异常dcm文件的复杂问题 fileutil文件 import os import shutil ...

  4. MATLAB遍历子文件夹及其下文件

    MATLAB遍历子文件夹及其下文件 以前从未遇到过用MATLAB批处理文件的情况,此次项目需要批量将wav文件导入matlab进行处理,现将matlab遍历子文件夹及其文件的方法记录下来. 文件目录结 ...

  5. Matlab 读取文件夹里所有的文件

    Matlab 读取文件夹里所有的文件 (image = dir('D:\gesture\*.*'); % dir是指定文件夹得位置,他与dos下的dir用法相同. 用法有三种: 1. dir 是指工作 ...

  6. matlab读int16读文件_Matlab文件操作及读txt文件(fopen,fseek,fread,fclose)

    Matlab 文件操作及读 txt 文件 (fopen,fseek,fread,fclose) matlab 文件操作 文件操作是一种重要的输入输出方式,即从数据文件读取数据或将 结果写入数据文件. ...

  7. matlab主程序和子函数不在一个文件夹下,怎么调用?

    转自:https://blog.csdn.net/qq_31811537/article/details/79036152 在程序前添加代码:addpath(genpath(pwd)); 将当前文件夹 ...

  8. matlab 2014a 安装教程(内附破解文件)

    matlab 2014a 安装教程(内附破解文件) 这几天在准备数模,决心好好研究一下matlab,几经折腾,终于完成了安装与破解过程,下面是基本的步骤: 1:下载安装文件和破解文件     链接:h ...

  9. matlab7 fig exe 阴影,Matlab 生成完全独立运行的 EXE文件的问题请教

    如何将matlab gui文件编辑成exe可执行文件 我现在用Matlab M文件写了一个计算程序,当输入一些数时,通过程序,计算出一些结果.(比如我的 程序是sum=(a+b+c)/d,即给定a,b ...

  10. MATLAB程序设计与应用 4.1 M文件

    MATLAB程序设计与应用 文章目录 MATLAB程序设计与应用 4. 第4章 MATLAB程序流程控制 4.1 M文件 4.1.1 M文件的建立与打开 4.1.2 M文件的分类 4. 第4章 MAT ...

最新文章

  1. Fastsocket学习笔记之小结篇
  2. python代码打开可执行文件_将自己的Python代码打包成exe文件(更换设备可运行的)...
  3. MySQL优化之三:SQL语句优化
  4. Ubuntu下MySQL忘记root密码重置
  5. es springboot 不设置id_springboot整合ES_文档ID删除
  6. (JAVA)红黑树之自然顺序排序和自定义排序方式
  7. 专访阿里数据库备份专家 教你pick最有效的备份系统
  8. 中职计算机基础课教学策略研究,计算机-研究教学方法中职学校计算机基础课程教学策略的论文开题报告-优度********网...
  9. Oracle EBS之把自定义concurrent加入Pick Release Document Set(All Pick Release Documents)的几个注意点...
  10. js 原生拖拽,返回到原点
  11. 自动摘要学习计划(英语)
  12. 计算机科学与技术专业导论mooc答案,中国大学MOOC人工智能导论(2017级)网课答案...
  13. 基于OPENCV的OCR身份证号识别技术
  14. Firefox 无法播放视频
  15. 微信小程序仿支付宝滑动图标
  16. java 微信群组头像_仿微信生成群组头像
  17. 如何保养COMAPQ/HP 电池
  18. 资源分享——免费的高端PPT模板网址
  19. No mapping found for HTTP request with URI问题解决
  20. SecureCRT教程——如何使用SecureCRT命令窗口将命令发送到多个会话

热门文章

  1. 2020 智慧城市解决方案(智慧城市系统及相关技术)
  2. 技术交底书(二)-----一种基于移动终端的安全防护系统
  3. codeblock图形界面编程
  4. 几款实用的前端日历时间日期选择控件
  5. 值得一看的Spring实战 (第5版)上!!笔者强力推荐!!
  6. teamtalk部署
  7. Apk去掉签名以及重新签名的方法
  8. bp神经网络 损失函数,bp神经网络参数优化
  9. MQL5语法基础(三)
  10. cad灯具图标_cad灯具图例下载