snow_partitioning(im, dt=None, r_max=4, sigma=0.4)[source]

Partition the void space into pore regions using a marker-based watershed algorithm, with specially filtered peaks as markers.

  • im (array_like) – A boolean image of the domain, with True indicating the pore space and False elsewhere.

  • dt (array_like, optional) – The distance transform of the pore space. This is done automatically if not provided, but if the distance transform has already been computed then supplying it can save some time.

  • r_max (int) – The radius of the spherical structuring element to use in the Maximum filter stage that is used to find peaks. The default is 4.

  • sigma (float) – The standard deviation of the Gaussian filter used in step 1. The default is 0.4. If 0 is given then the filter is not applied, which is useful if a distance transform is supplied as the im argument that has already been processed.


results – A custom object with the follow data as attributes:

  • ’im’

    The binary image of the void space

  • ’dt’

    The distance transform of the image

  • ’peaks’

    The peaks of the distance transform after applying the steps of the SNOW algorithm

  • ’regions’

    The void space partitioned into pores using a marker based watershed with the peaks found by the SNOW algorithm

Return type:

Results object


The SNOW network extraction algorithm (Sub-Network of an Over-segmented Watershed) was designed to handle to perculiarities of high porosity materials, but it applies well to other materials as well.


[1] Gostick, J. “A versatile and efficient network extraction algorithm using marker-based watershed segmenation”. Physical Review E. (2017)