Skip to content

Morphological operations

Omer Faruk Gulban edited this page Oct 26, 2018 · 6 revisions

After creating a mask with Segmentator, morphological operations can be used to improve the mask.

Here is an example python script to perform opening and closing operations:

import os
import numpy as np
from scipy.ndimage import morphology
from nibabel import load, save, Nifti1Image

# load data
nii = load('/path/to/your/file.nii.gz')
basename = nii.get_filename().split(os.extsep, 1)[0]
dirname = os.path.dirname(nii.get_filename())
data = nii.get_data()

# perform closing
data = morphology.binary_dilation(data, iterations=1)
data = morphology.binary_erosion(data, iterations=1)

# perform opening
data = morphology.binary_erosion(data, iterations=1)
data = morphology.binary_dilation(data, iterations=1)

# save as nifti
out = Nifti1Image(data, header=nii.header, affine=nii.affine)
save(out, basename + "_opening_closing.nii.gz")

print('Morphology operations are done.')

For further information, see scipy.ndimage.morphology.

TODO: Images to demonstrate before/after morphological operations.

Clone this wiki locally