how can imfill an image with a lot of edge?
조회 수: 7 (최근 30일)
이전 댓글 표시
hi
I want to imfill an image of lung to have an image that shows me just left and right lung.. I obtain boundary of lung wit this cod that I attach
if true
function [perimImage] = filling( I )
s = uint8(255 * mat2gray(I));
s = im2bw(s);
perimImage = xor(s,imerode(s, true(3)));
figure, imshow(perimImage)
end end
when I use this code my result is like the image that I put.
I think it is a good result but when I use imfill, the result is this:
do you have any suggestion for me to have an image like this after using imfill?
be black or white is not important for me I just want to segment lung to the result that I say.. thanks
댓글 수: 2
Sean de Wolski
2014년 9월 8일
편집: Sean de Wolski
2014년 9월 8일
Show us the original image; it might be easier to start with that for the original segmentation.
답변 (2개)
Image Analyst
2014년 9월 8일
Draw lines around the border of your binary image:
binaryImage(:,1) = true;
binaryImage(:,end) = true;
binaryImage(1,:) = true;
binaryImage(end,:) = true;
Now do a fill to fill the region between the border and the body.
binaryImage = imfill(binaryImage, 'holes');
Now do an imclearborder to get rid of all that and leave just the lung edges
binaryImage = imclearborder(binaryImage);
Now do a fill again to get the lungs filled.
lungsMask = imfill(binaryImage, 'holes');
And you're basically done. If there is any small blobs remaining, use my ExtractNLargestBlobs function (attached) to extract just the 2 largest blobs, which will be the lungs.
댓글 수: 14
Image Analyst
2014년 9월 14일
It's not a "hole" but more of a "bay" because that region is actually a white region that is an incursion from the bright outer body into the lung. If you want to smooth the boundary you need to use active contours. This will "cut off" that bay. I'm attaching an example.
참고 항목
카테고리
Help Center 및 File Exchange에서 3-D Volumetric Image Processing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!