connecting 2 object that separately but their location is close ?

1 view (last 30 days)
##sorry if my english is bad
i have a binary image like this
and i want to connect the little object with the large object and fill the hole on the center of object like this :
what toolbox should i use and can you give me the example code for the problem like this ?

Accepted Answer

Image Analyst
Image Analyst on 19 Jan 2020
To connect regions, you can use imclose()
mask = imclose(mask, true(9)); % Vary the 9 to connect more or less close regions.
To fill regions, you can use imfill():
mask = imfill(mask, 'holes');
To erase things touching the border, you can use imclearborder:
mask = imclearborder(mask);
To extract a specified number of largest blobs, you can use bwareafilt():
mask = bwareafilt(mask, 3); % Extract 3 largest blobs.
To extract blobs of a specified size or larger you can use either bwareafilt(mask, [smallArea, largeArea]) or bwareaopen():
mask = bwareafilt(mask, [2000, 5000]); % Extract blobs between 2000 and 5000 in pixel area.
mask = bwareaopen(mask, 4000); % Extract blobs only 4000 pixels or larger.

More Answers (1)

Thiago Henrique Gomes Lobato
You can use the imfill function from the image processing toolbox for such type of problems.

Community Treasure Hunt

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

Start Hunting!