Edge-preserving Image Smoothing in Python

How do we extract meaningful information from scientific images in spite of ubiquitous noise? Edge-preserving image smoothing removes noise as a pre-processing step for visualization or analysis. A number of edge-preserving image processing filters are available in the Insight Toolkit (ITK), such as the bilateral image filter. An anisotropic diffusion filter that delivers excellent edge-preserving characteristics was contributed as a Remote Module in ITK.

We previously discussed how the multi-threaded N-D filter is available in C++ and JavaScript. Building on improved Python packaging for the Toolkit, binary Python packages are now available for the module. To install the package, run:

python -m pip install --upgrade pip
python -m pip install itk-anisotropicdiffusionlbr


This Jupyter notebook illustrates how to remove noise from a transmission electron microscope image a corn (Zea mays) etioplast. Improved definition of prolamellar bodies and thylakoid membranes provide insight into chloroplast development as the etioplast is exposed to light. This is one step in automation and quantification of photosythesis-related processes for biological research and agricultural biotechnology development.

etioplast smoothing

Etioplast smoothing: left column, input image. Right column, edge-preserving smoothing. Open data image credit: Chris Woodcock.


Enjoy ITK!

Questions or comments are always welcome!