Matlab 批量CT图像进行肺实质分割

目录

前言

代码:

结果:

代码原文链接:



前言

本人也是小白。因为不知道怎么批量对肺部CT图像进行肺实质的分割,当初在网上找了很久的资源,这里就进行一下整合。

适合刚好在这方面有需要的、ddl又快到的同学。

这不是对dicom格式的CT图进行分割的,是对png、jpg等格式的CT图进行分割的。

如需对dicom格式的 CT图进行分割,或许这篇文章能给到帮助:https://blog.csdn.net/tianjinyikedaxue/article/details/89951069,他给的代码我下载运行过是ok的。

本文给的代码功能也不完善,只是粗略的进行了肺实质的提取,没做到消除床板区域和消除肺气管。如果能留下您宝贵的改进建议那将十分感激!

原创代码链接附在文末。


代码:

Input_path = 'C:\Users\999\Desktop\11\';  %定义输入路径,直接把文件夹路径复制过来,注意最后面有个"\"
Output_path='C:\Users\999\Desktop\22\';     %定义输出路径
namelist = dir(strcat(Input_path,'*.png'));   %定义namelist为所有png文件的一个集和,png可改为jpg等
len = length(namelist); %定义len为图片个数
for a = 1:len
  name=namelist(a).name;  %namelist(a).name; %这里获得的只是该路径下的文件名
  im=imread(strcat(Input_path, name)); %图片完整的路径名
  im=rgb2gray(im); 
[row column]=size(im);
Gmax=max(max(im));
Gmin=min(min(im));
T0=(Gmax+Gmin)/2;
M0=mean(im(find(im=T0)));
T1=(M0+M1)/2;
for i=1:258             
    if T1~=T0
        T0=T1;
        M0=mean(im(find(im=T0)));
        T1=(M0+M1)/2;
    else break
    end
end
thresh=T0;
for index=1:row*column
    if im(index)>thresh
        im(index)=0;
    end
end
imwrite(im,[Output_path,'out',int2str(a),'.png']); %将图片保存到之前定义的输出路径里,并且定义文件名为outa(a=1,2,3....)

end

结果:

输入:

Matlab 批量CT图像进行肺实质分割_第1张图片

 

输出:

Matlab 批量CT图像进行肺实质分割_第2张图片


代码原文链接:

肺实质分割:https://www.ilovematlab.cn/thread-106098-1-1.html
批量读取、保存图片:https://blog.csdn.net/qq_24193303/article/details/102780421

你可能感兴趣的:(Matlab 批量CT图像进行肺实质分割)