Matlab 批量CT图像进行肺实质分割
 发布时间 
 阅读量: 
 阅读量 
目录
前言
代码:
结果:
代码原文链接:
前言
本人也是小白。因为不知道怎么批量对肺部CT图像进行肺实质的分割,当初在网上找了很久的资源,这里就进行一下整合。
适合刚好在这方面有需要的、ddl又快到的同学。
这不是对dicom格式的CT图进行分割的,是对png、jpg等格式的CT图进行分割的。
如需对dicom格式的 CT图进行分割,或许这篇文章能给到帮助:<>,他给的代码我下载运行过是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)));
    
 M1=mean(im(find(im>=T0)));
    
 T1=(M0+M1)/2;
    
 for i=1:258             
    
     if T1~=T0
    
     T0=T1;
    
     M0=mean(im(find(im<T0)));
    
     M1=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
        结果:
输入:

输出:

代码原文链接:
肺实质分割:https://www.ilovematlab.cn/thread-106098-1-1.html
批量读取、保存图片:<>
全部评论 (0)
 还没有任何评论哟~ 
