Search code examples
python-3.ximage-processingscipyscikit-imagemathematical-morphology

Estimating Region covered by all sides


I need some help in estimating somekind of of morphological operations(preferably using skimage or scipy image or python in general) that can help me isolate the regions that are enclosed by all sides(see images.) The problem is the outer shell can be of varied shape and size. The enclosed regions are also of varied shapes and sizes. Examples of the image where the enclosed(by the white regions) black region needs to isolated.

By isolation I mean to get all the pixel coordinates in the enclosed black regions.

Example 1

Fill the small black region

Example 2

Fill the small black region 2

Also another caveat is that the images like this should not be filled up.

enter image description here


Solution

  • Use scipy.ndimage.binary_fill_holes

    from scipy import ndimage as ndi
    
    filled = ndi.binary_fill_holes(image)
    holes = filled - image  # or np.logical_xor(filled, image)