Bio-Medical Image Processing
Bio-Medical Image Processing
• Space image processing (e.g., Hubble space telescope images, interplanetary probe images)
1. scikit-image
scikit-image is an open source Python package that works with NumPy arrays. It
implements algorithms and utilities for use in research, education, and industry
applications. It is a fairly simple and straightforward library, even for those who are
new to Python's ecosystem.
2. NumPy
NumPy is one of the core libraries in Python programming and provides support for arrays.
An image is essentially a standard NumPy array containing pixels of data points. Therefore,
by using basic NumPy operations, such as slicing, masking, and fancy indexing, you can
modify the pixel values of an image. The image can be loaded using skimage and
displayed using Matplotlib.
3. SciPy
SciPy is another of Python's core scientific modules (like NumPy) and can be used for
basic image manipulation and processing tasks. In particular, the submodule
scipy.ndimage (in SciPy v1.1.0) provides functions operating on n-dimensional NumPy
arrays. The package currently includes functions for linear and non-linear filtering,
binary morphology, B-spline interpolation, and object measurements.
4. PIL/Pillow
PIL (Python Imaging Library) is a free library for the Python programming language that
adds support for opening, manipulating, and saving many different image file formats.
However, its development has stagnated, with its last release in 2009. Fortunately, there is
Pillow, an actively developed fork of PIL, that is easier to install, runs on all major operating
systems, and supports Python 3. The library contains basic image processing functionality,
including point operations, filtering with a set of built-in convolution kernels, and color-
space conversions.
5. OpenCV-Python
OpenCV (Open Source Computer Vision Library) is one of the most widely used libraries
for computer vision applications. OpenCV-Python is the Python API for OpenCV. OpenCV-
Python is not only fast, since the background consists of code written in C/C++, but it is
also easy to code and deploy (due to the Python wrapper in the foreground). This makes it
a great choice to perform computationally intensive computer vision programs.
6. SimpleCV
SimpleCV is another open source framework for building computer vision applications. It
offers access to several high-powered computer vision libraries such as OpenCV, but
without having to know about bit depths, file formats, color spaces, etc. Its learning curve
is substantially smaller than OpenCV's, and (as its tagline says), "it's computer vision
made easy." Some points in favor of SimpleCV are:
•Even beginning programmers can write simple machine vision tests
•Cameras, video files, images, and video streams are all interoperable
7. Mahotas
Mahotas is another computer vision and image processing library for Python. It contains
traditional image processing functions such as filtering and morphological operations, as well
as more modern computer vision functions for feature computation, including interest point
detection and local descriptors. The interface is in Python, which is appropriate for fast
development, but the algorithms are implemented in C++ and tuned for speed. Mahotas'
library is fast with minimalistic code and even minimum dependencies. Read its official paper
for more insights.
8. SimpleITK