资源简介

本段代码是利用大津法分割阈值,获得二值图像,随后利用小面积法删除背景区域,经过运算获得肺实质的掩模图像,最后,经过原dcm图像与掩模图像的运算,获得完整的肺实质图像,完成肺实质的粗提取。

资源截图

代码片段和文件信息

%肺实质的粗提取
% open image
info=dicominfo(‘1.3.46.670589.33.1.63635361597142472300002.5281141671408791693_S2.I96.dcm‘);
I=dicomread(info);
%-2000 to 0
[mn]=size(I);
for i=1:m
    for j=1:n
        if I(ij)==-2000
            I(ij)=0;
        end
    end
end
figure(‘name‘‘original image‘)imshow(I[])
% figuresubplot(241)imshow(I[])title(‘原图I‘);
 %二值化
level=graythresh(I);%高斯滤波
I2=im2bw(Ilevel);%二值化
figure(‘name‘‘binary image‘);imshow(I2)
% subplot(242)imshow(I2)title(‘二值化I2‘);
I3 = bwareaopen(I210000);
figure(‘name‘‘a删除小面积对象‘)imshow(I3)
% subplot(243)imshow(I3)title(‘删除小面积I3‘);
for i = 1:m
      for j=1:n
          I4(ij) = 1-I3(ij);
      end
  end
figure(‘name‘‘取反‘)imshow(I4)
% subplot(244)imshow(I4)title(‘取反I4‘);
I5 = bwareaopen(I410000);
figure(‘name‘‘删除I4中的小面积对象‘)imshow(I5)
% subplot(245)imshow(I5)title(‘删除小面积对象I5‘);

 L = bwlabeln(I58);
 S = regionprops(L‘Area‘);
I6 = ismember(Lfind([S.Area]<=30000));
figure(‘name‘‘填充其他区域‘)imshow(I6)
% subplot(246)imshow(I6)title(‘填充其他区域I6‘);
%********************边缘修补******************

%**********************************************
 for i =1:m
      for j = 1:n
           I7(ij) = 1-I6(ij);
           I8(ij) = I(ij) - double(I7(ij)*10000);
           if I8(ij)<0
              I8(ij) = 0;
           end
      end
 end

figure(‘name‘‘掩模‘

评论

共有 条评论