How to remove unconnected regions from image
8 views (last 30 days)
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.
sam CP on 17 Mar 2017
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');