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

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 2020년 6월 16일
You can also use bwregionprops to find area of each blob
How would I remove the larger image knowing just the area?
KSSV
KSSV 2020년 6월 18일
Replace that region pixel values with black ones....

댓글을 달려면 로그인하십시오.

답변 (1개)

KALYAN ACHARJYA
KALYAN ACHARJYA 2020년 6월 18일
편집: KALYAN ACHARJYA 2020년 6월 18일

1 개 추천

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);

질문:

2020년 6월 16일

편집:

2020년 6월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by