How to remove unconnected regions from image
이전 댓글 표시
Hello
I am doing project "Persons identification on the basis of retinal vessels". I am working on the part of segmentation of blood vessels. I have read some relevant papers to implement segmentation process. However segmentation is not giving good results with majority of my images. I have to get good segmentation result for all the images. Some of papers I read are: <http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6965041> I also used information on the link https://www.mathworks.com/matlabcentral/answers/113073-how-to-remove-unconnected-pixels-or-objects-from-an-image and solved some problems using bwareafilt() and bwareaopen(). Below is my one of the input image with which segmentation is not good at all. Please help me with this. I also attached my .m file. Thanks in advance.

댓글 수: 5
Image Analyst
2017년 3월 17일
That is an extraordinarily bad image. I've never seen a fundus image with such low contrast and strange colors. Did something go wrong? Or is there something truly anatomically wrong with that subject? I'd ask your ophthalmologist if there was some problem with the image capture settings.
Sidra Aleem
2017년 3월 18일
편집: Sidra Aleem
2017년 3월 18일
Image Analyst
2017년 3월 18일
Sorry, developing an algorithm to handle such bad images would take more time that I can devote to a question. It could take months or years. You might check the literature http://www.visionbib.com/bibliography/contentsmedical.html#Medical%20Applications,%20CAT,%20MRI,%20Ultrasound,%20Heart%20Models,%20Brain%20Models or hire a university or think tank to help write the algorithm for you.
Sidra Aleem
2017년 3월 19일
Image Analyst
2017년 3월 19일
What is she hoping that you can visualize or measure that she can't see without you? Is she willing to manually trace or outline things?
답변 (1개)
sam CP
2017년 3월 17일
0 개 추천
You can refer the following code..
binaryImage = bwareafilt(binaryImage, 2); % Extract 2 largest blobs. % Erode it a little with imopen(). figure, imshow(binaryImage,[]);title('bwareafilt2'); binaryImage = imopen(binaryImage, true(5)); figure, imshow(binaryImage,[]);title('imopen');
binaryImage = bwareafilt(binaryImage, 1); % Extract largest blob. figure, imshow(binaryImage,[]);title('bwareafilt1'); % Fill any holes in the lagest blob. binaryImage = imfill(binaryImage, 'holes'); figure, imshow(binaryImage,[]);title('imfill'); % Dilate mask out a bit in case we've chopped out a little bit of largest blob. binaryImage = imdilate(binaryImage, true(5)); figure, imshow(binaryImage,[]);title('imdilate');
% Display the final binary image.
figure, imshow(binaryImage, []);title('Final binary image');
%===========================================================================================================
카테고리
도움말 센터 및 File Exchange에서 ROI-Based Processing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!