remove_overlaps#

import porespy as ps
import matplotlib.pyplot as plt
import numpy as np
ps.visualization.set_mpl_style()
im = ps.generators.blobs([200, 200])
fig, ax = plt.subplots(figsize=[4, 4])
ax.imshow(im);
../../../_images/3f6b67d17c64537e4536bdb276ca6616710d15c41ef7b5e831c18748054ff0d1.png
slices = ps.tools.get_slices_grid(im=im, divs=2, overlap=10)
fig, ax = plt.subplots(2, 2, figsize=[4, 4])
for i, s in enumerate(slices):
    ax[i // 2][i % 2].imshow(im[s])
../../../_images/9418ec068f8c37c9ba084685ca34bb35ad34762943f046dfcf0fdbadfa9757ef.png

Now let’s colorize each image differently, then we can see how to rejoin them:

new_ims = []
for i, s in enumerate(slices):
    new_ims.append(im[s]/1.0*(i + 1))

fig, ax = plt.subplots(2, 2, figsize=[4, 4])
for i, s in enumerate(slices):
    ax[i // 2][i % 2].imshow(new_ims[i], vmax=4)
../../../_images/eab9103543151feaa73d00d90935fe7c33b928346575bd8e9e1779e027fbca4d.png
new_slices_global, new_slices_sub = ps.tools.remove_overlaps(slices, overlap=10, shape=im.shape)
im_new = np.zeros_like(im, dtype=float)
for i, s in enumerate(new_slices_global):
    im_new[s] = new_ims[i][new_slices_sub[i]]

fig, ax = plt.subplots(figsize=[4, 4])
ax.imshow(im_new);
../../../_images/a052a3533c1a44043de58cd2012b3589d432bd0c1e85455af00f7c81af6f8e19.png