trim_small_clusters#

trim_small_clusters function is a filter that removes isolated voxels or clusters of a given size or smaller.

import matplotlib.pyplot as plt

import porespy as ps

ps.visualization.set_mpl_style()

im#

This function works on 2D and 3D images.

im = ps.generators.blobs(shape=[500, 500], blobiness=5, porosity=0.5)

plt.figure(figsize=[6, 6])
plt.imshow(im)
plt.axis(False);
../../../_images/8738c79a35758333651cd162b48eed476d69cf1359026f15e5246ea0ec74cd1b.png

min_size#

The maximum min_size of a cluster to trim is varied trying 10, 100, and 500 voxels.

x1 = ps.filters.trim_small_clusters(im, min_size=10)
x2 = ps.filters.trim_small_clusters(im, min_size=100)
x3 = ps.filters.trim_small_clusters(im, min_size=500)

fig, ax = plt.subplots(1, 3, figsize=[18, 18])
ax[0].imshow(x1)
ax[0].axis(False)
ax[0].set_title("size = 10", fontdict={"fontsize": 18})
ax[1].imshow(x2)
ax[1].axis(False)
ax[1].set_title("size = 100", fontdict={"fontsize": 18})
ax[2].imshow(x3)
ax[2].axis(False)
ax[2].set_title("size = 500", fontdict={"fontsize": 18});
../../../_images/fa80698995af1d3ccac64a13bdd9a6dc644b75059ca777c99542a3ee4c630152.png