trim_nearby_peaks#

trim_nearby_peaks function is a filter which finds nearby peaks in an image and removes the peak that is closer to the solid phase. This filter relies on the distance transform of an image.

import matplotlib.pyplot as plt
from edt import edt

import porespy as ps

ps.visualization.set_mpl_style()

dt#

The distance transform of a test image is determined using the edt method.

im = ps.generators.blobs(shape=[200, 200])
dt = edt(im)

plt.figure(figsize=[6, 6])
plt.imshow(dt/im)
plt.axis(False);

peaks#

The peaks of the distance transform are found using the find_peaks filter and nearby peaks are removed.

peaks = ps.filters.find_peaks(dt, r_max=4)

x = ps.filters.trim_nearby_peaks(peaks=peaks, dt=dt)

fix, ax = plt.subplots(1, 2, figsize=[12, 12])
ax[0].axis(False)
ax[0].imshow(peaks/im)
ax[0].set_title('Before', fontdict={'fontsize': 18})
ax[1].axis(False)
ax[1].imshow(x/im)
ax[1].set_title('After', fontdict={'fontsize': 18});