为PANDA制作的DWI按扫描次数分类的toolkit
【摘要】 最近在使用PANDA的过程中,出现了DWI的dicom文件夹输入存在问题的状况,对照manual中发现是因为医院为我们提供的DWI数据是42或84个(对应于2次扫描或4次扫描,没有进行按扫描次数分类。)这里我写了一个简单的安扫描次数分类的toolkit,可以针对42或84个扫描文件中的DWI进行批量分类处理。经过修改后相信适用于大家,注意操作环境是Linux下的matlab。...
最近在使用PANDA的过程中,出现了DWI的dicom文件夹输入存在问题的状况,对照manual中发现是因为医院为我们提供的DWI数据是42或84个(对应于2次扫描或4次扫描,没有进行按扫描次数分类。)这里我写了一个简单的安扫描次数分类的toolkit,可以针对42或84个扫描文件中的DWI进行批量分类处理。经过修改后相信适用于大家,注意操作环境是Linux下的matlab。
% 2016/4/11
% author: Changle Zhang
% funtion:sort DWI files by the scanning time
clc
clear all;
close all;
%load train
%[filename,pathname]=uigetfile({'*.dcm'},'choose any dcm file');
pathname='*'; % input the pathname
cd(pathname);
foldernamecell=dir;
dircells=struct2cell(foldernamecell);
foldernames=dircells(1,:);
folderlength=numel(foldernames);
for i=3:folderlength folder=char(foldernames(i)); cd (folder); cd DWI; dirs=dir; dircell=struct2cell(dirs)' ; filenames=dircell(:,1); length=numel(filenames)-2; if (length==84) mkdir('DWI1'); %depends on the number of scanning mkdir('DWI2'); mkdir('DWI3'); mkdir('DWI4'); for n=3:numel(filenames)-2; dcminfo=dicominfo(char(filenames(n))); name1=dcminfo.AcquisitionNumber; if (name1<=21) copyfile(char(filenames(n)),'DWI1'); elseif (21<name1)&&(name1<=42) copyfile(char(filenames(n)),'DWI2'); elseif (42<name1)&&(name1<=63) copyfile(char(filenames(n)),'DWI3'); else copyfile(char(filenames(n)),'DWI4'); end end elseif (length==42) mkdir('DWI1'); %depends on the number of scanning mkdir('DWI2'); for n=3:numel(filenames)-2; dcminfo=dicominfo(char(filenames(n))); name1=dcminfo.AcquisitionNumber; if (name1<=21) copyfile(char(filenames(n)),'DWI1'); else copyfile(char(filenames(n)),'DWI2'); end end end cd(pathname)
end
文章来源: zclhit.blog.csdn.net,作者:zclhit_,版权归原作者所有,如需转载,请联系作者。
原文链接:zclhit.blog.csdn.net/article/details/51123501
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)