MATLAB: When working with an image and filling in gaps, do you only choose one: imerode, imdilate, imopen, imclsoe and imfill

imageImage Processing Toolboxmorphology

Individually I understand the function of all of the commands. However, when asked to fill in the gaps of an image, do you only use one of them or use them all?

Best Answer

Assuming your foreground blobs are white/true/1, imerode and imopen will enlarge the black areas and eat away at the white areas. imdilate and imclose will enlarge/smooth the white areas and fill in black areas near borders/perimeters. imfill() fills in black islands in a white blob. Usually you use only one: imfill. However if you want your blobs to have a bit smoother outline, then you can use imclose() before imfill().
Related Question