User Guide¶
PoreSpy is a collection of functions that are especially useful for analyzing binary images of porous materials, typically produced by X-ray tomography. The functions in this collection are often simple combinations of other standard image analysis functions, so really only offer the convenience of organizing the functions into one place, and sparing you the trouble of working them out.
Modules¶
This package consists of several modules, the purposes of which are given below:
| binarization | Convert greyscale images to binary |
| filters | Process images based on structural features |
| generators | Make artificial images for testing & illustration |
| metrics | Extract information from images |
| network_extraction | Extract pore network models from images |
| simulations | Performing complex simulations directly on an image |
| tools | Utilities for altering & manipulating images |
| visualization | Quickly and easily visualiz 3D images |
Example Usage¶
>>> import porespy as ps
>>> import matplotlib.pyplot as plt
>>> im = ps.generators.blobs([100, 100])
>>> mip = ps.filters.porosimetry(im)
>>> PcSw = ps.metrics.pore_size_distribution(mip)
>>> fig = plt.plot(*PcSw)
Image Types¶
PoreSpy is meant to work on single-channel, binary images. Such images are conveniently represented by Numpy arrays, hence all references to an image is equivalent to an array. It is further assumed that the arrays are binarized, meaning 1’s or True values indicating the void space, and 0’s or False values for the solid.
Limitations¶
Although scikit-image and scipy.ndimage have a wide assortment of functions, they are not always the fastest implementation. It is often faster to use ImageJ for many things, such as distance transforms and image morphology. The advantage of PoreSpy is the flexibility offered by the Python environment.