这是我学习编程以后做的第一个项目,课题是肺部支气管的分割算法。
代码分为两个部分,第一部分是将CT图像顺序读入三维矩阵保存
d = ls('*.dcm');%列出子文件中格式为.dcm的所有文件d
m = size(d,1);%获取文件数m
[group, element] = dicomlookup('InstanceNumber');%查看文件编号
sdata(m) = struct('imagename','','instance',0);%创建m行2列空的数据命名为imagename和instance
for i = 1:m
metadata = dicominfo(d(i,:));%逐个读取文件信息
position = metadata.(dicomlookup(group, element));%读取文件instancenumber到position
sdata(i) = struct('imagename',d(i,:),'instance',position);%逐个将文件名和position赋到sdata中的imagename列与instance列
end
[unused, order] = sort([sdata(:).instance],'ascend');%将sdata中的instance列按升序排序
sorted = sdata(order).';%将order转置成为sorted
for i = 1:m
d(i,:) = sorted(i).imagename;%逐个读取文件名到d的各行
end
topimage = dicomread(d(1,:));%读取第一张图片
metadata = dicominfo(d(1,:));%读取第一张图片信息
[group1, element1] = dicomlookup('PixelSpacing');%获取像素空间
[group2, element2] = dicomlookup('SliceThickness');%获取层厚
resolution = metadata.(dicomlookup(group1,