How to extract second largest blob from image?

I have a binary image, and have extracted the largest and second largest images from a grayscale image (using bwareafilt). This gives me the image below:
How do i extract the image on the right (the second largest image)?
Using regionprops I have the Area, Centroid and Bounding Box for both blobs, but I am not sure how to use these values to extract the image on the right.
Thank you.

4 comentarios

Sorry I solved it, dont know if i should delete or not but I did the following, BW is the binary image:
bwareafilt(BW, 2)-bwareafilt(BW, 1);
darova
darova el 16 de Jun. de 2020
You can also use bwregionprops to find area of each blob
Roark Menezes
Roark Menezes el 18 de Jun. de 2020
How would I remove the larger image knowing just the area?
KSSV
KSSV el 18 de Jun. de 2020
Replace that region pixel values with black ones....

Iniciar sesión para comentar.

Respuestas (1)

KALYAN ACHARJYA
KALYAN ACHARJYA el 18 de Jun. de 2020
Editada: KALYAN ACHARJYA el 18 de Jun. de 2020
large_1=bwareafilt(binary_image,1); %Extracting Large Blob
large_2=binary_image & ~large_1; % Logical Operation to get 2nd largest Blob
large_2=bwareafilt(large_2,1); % Remove extra small blobs
imshow(large_2);

Preguntada:

el 16 de Jun. de 2020

Editada:

el 18 de Jun. de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by