hold_peaks#

Replaces each voxel with the last peak seen along the given axis

import numpy as np
import porespy as ps
import matplotlib.pyplot as plt
from edt import edt
ps.visualization.set_mpl_style()

im#

The input image will most likely be the distant transform

np.random.seed(0)
im = ps.generators.blobs(shape=[500, 500])
dt = edt(im)

pk = ps.filters.hold_peaks(im=dt, axis=0)

fig, ax = plt.subplots(1, 2, figsize=[16, 8])
ax[0].imshow(dt/im)
ax[0].axis(False)
ax[0].set_title('distance transform')

ax[1].imshow(pk/im)
ax[1].axis(False)
ax[1].set_title('peaks');
../../../_images/2faf84bcc8090e9500591665730160cfb63dc8dc2809423e31a1d88f09b5418b.svg

axis#

Controls the axis of the search:

fig, ax = plt.subplots(1, 2, figsize=[12, 6])

axis = 0
pk1 = ps.filters.hold_peaks(im=dt, axis=axis)
ax[0].imshow(pk1/im)
ax[0].axis(False)
ax[0].set_title(f'axis = {axis}')

axis = 1
pk2 = ps.filters.hold_peaks(im=dt, axis=axis)
ax[1].imshow(pk2/im)
ax[1].axis(False)
ax[1].set_title(f'axis = {axis}');
../../../_images/d01437bde254240c7e71436a3063fafddd436d3a3671e1825ec00c8af9e1d120.svg

ascending#

A boolean that controls the direction of the scanning:

fig, ax = plt.subplots(1, 2, figsize=[12, 6])

ascending = True
pk1 = ps.filters.hold_peaks(im=dt, ascending=ascending)
ax[0].imshow(pk1/im)
ax[0].axis(False)
ax[0].set_title(f'ascending = {ascending}')

ascending = False
pk2 = ps.filters.hold_peaks(im=dt, ascending=ascending)
ax[1].imshow(pk2/im)
ax[1].axis(False)
ax[1].set_title(f'ascending = {ascending}');
../../../_images/c71a9752b274e0206ffbd25cccc886ca08560e7b5a93daa90e96383c62e23853.svg