在二维CT dicom去除床板时,当手臂与身体分开时,手臂也会消失,这里代码来至niubi Gao,做此记录。
function [img3d]=read3DCT(rootdir)
%读取CT或者CBCT到三维矩阵
if rootdir(end)~='\'
rootdir=[rootdir,'\'];
end
iname=dir(rootdir);
n=length(iname)-2;
y(n)=0;
for i=1:n
filename=[rootdir,iname(i+2).name];
info=dicominfo(filename);
y(i)=info.InstanceNumber; %CT slice所在层数,该数字不连续,且有部分是重叠的
end
mi=info.Width;
x=sort(y);
xu=unique(x);
num=length(xu);
img3d=zeros(mi,mi,num);
for i=1:num
index=find(xu(i)==y);
if length(index)>1
index=index(1);
end
filename=[rootdir,iname(index+2).name];
img=dicomread(filename);
img3d(:,:,i)=img;
end
img3d=uint16(img3d);
end
function [y] = lunkuoct(img)
%去除ct中床,提取人体的区域,FOV边缘高亮CT值有影响
img=double(img);
s=size(img);
z=zeros(s(1)+2,s(2)+2,s(3));
z(2:(s(1)+1),2:(s(2)+1),:)=img;
x=z>0;
for i=1:s(3)
x(:,:,i)=imfill(x(:,:,i),'holes');
end
se = strel('disk',7); %边界腐蚀
x1=imerode(x,se);
h=zeros(s(1),s(2),s(3));
h=x1

最低0.47元/天 解锁文章
799

被折叠的 条评论
为什么被折叠?



