在 CT 图像中分割肺和结节 [英] Segmenting Lungs and nodules in CT images
问题描述
我是 Matlab 图像处理的新手,我正在尝试从 CT 图像中分割肺和结节.我已经做了初步的图像增强.
I am new with Image processing in Matlab, I am trying to segment LUNG and nodules from CT image. I have done initial image enhancement.
我搜索了很多,但没有找到任何相关材料.
I searched lot on the same but I haven't found any relevant materials.
试图从给定的图像中分割肺部部分;然后检测肺部分的结节.
Trying to segment lung part from the given image; and then detecting nodules on Lung part.
我在 Matlab 中尝试的代码:
Code I tried in Matlab:
d1 = dicomread('000000.dcm');
d1ca = imadjust(d1);
d1nF = wiener2(d1ca);
d1Level = graythresh(d1nF);
d1sBW = im2bw(d1nF,d1Level);
sed = strel('diamon',1);
BWfinal = imerode(d1sBW,sed);
BWfinal = imerode(BWfinal,sed);
BWoutline = bwperim(BWfinal);
Segout = d1nF;
Segout(BWoutline) = 0;
edgePrewitt = edge(d1nF,'prewitt');
以上代码的结果:
想要这样的结果:
http://oi41.tinypic.com/35me7pj.jpg
http://oi42.tinypic.com/2jbtk6p.jpg
http://oi44.tinypic.com/w0kthe.jpg
http://oi40.tinypic.com/nmfaio.jpg
http://oi41.tinypic.com/2nvdrie.jpg
http://oi43.tinypic.com/2nvdnhk.jpg
我知道这对专家来说可能很容易.请帮帮我.
I know its may be easy for experts. Please help me out.
谢谢!
推荐答案
试试这个:
% dp6BK.png is your original image, I downloaded directly
I = im2double(imread('dp6BK.png'));
I=I(:,:,1);
imshow(I)
cropped = I(50:430,8:500); %% Crop region of interest
thresholded = cropped < 0.35; %% Threshold to isolate lungs
clearThresh = imclearborder(thresholded); %% Remove border artifacts in image
Liver = bwareaopen(clearThresh,100); %% Remove objects less than 100 pixels
Liver1 = imfill(Liver,'hole'); % fill in the vessels inside the lungs
figure,imshow(Liver1.*cropped)
你会得到什么:
这篇关于在 CT 图像中分割肺和结节的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!