Mahotas: Computer Vision in Python¶
If you are using mahotas in a scientific publication, please cite:
Coelho, L.P. 2013. Mahotas: Open source software for scriptable computer vision. Journal of Open Research Software 1(1):e3, DOI: http://dx.doi.org/10.5334/jors.ac
Mahotas is a computer vision and image processing library for Python.
It includes many algorithms implemented in C++ for speed while operating in numpy arrays and with a very clean Python interface.
Mahotas currently has over 100 functions for image processing and computer vision and it keeps growing. Some examples of mahotas functionality:
- convex points calculations.
- hit & miss. thinning
- Zernike & Haralick, local binary patterns, and TAS features.
- morphological processing
- Speeded-Up Robust Features (SURF), a form of local features
- Sobel edge detection.
The release schedule is roughly one release every few months and each release brings new functionality and improved performance. The interface is very stable, though, and code written using a version of mahotas from years back will work just fine in the current version, except it will be faster (some interfaces are deprecated and will be removed after a few years, but in the meanwhile, you only get a warning).
Bug reports with test cases typically get fixed in 24 hours.
mahotas-imread is side project which includes code to read/write images to files
This is a simple example of loading a file (called test.jpeg) and calling watershed using above threshold regions as a seed (we use Otsu to define threshold).
import numpy as np import mahotas import pylab img = mahotas.imread('test.jpeg') T_otsu = mahotas.thresholding.otsu(img) seeds,_ = mahotas.label(img > T_otsu) labeled = mahotas.cwatershed(img.max() - img, seeds) pylab.imshow(labeled)
Computing a distance transform is easy too:
import pylab as p import numpy as np import mahotas f = np.ones((256,256), bool) f[200:,240:] = False f[128:144,32:48] = False # f is basically True with the exception of two islands: one in the lower-right # corner, another, middle-left dmap = mahotas.distance(f) p.imshow(dmap) p.show()
(Source code, png, hires.png, pdf)
Full Documentation Contents¶
Jump to detailed API Documentation
- How To Install Mahotas
- Finding Wally
- Labeled Image Functions
- Wavelet Transforms
- Distance Transform
- Polygon Utitilities
- Local Binary Patterns
- Speeded-Up Robust Features
- Implementing SURF-ref With Mahotas
- Morphological Operators
- Color Space Conversions
- Input/Output with Mahotas
- Tutorial: Classification Using Mahotas
- Tutorial: Extended Depth of Field
- Frequently Asked Questions
- How do I install mahotas with anaconda?
- Who uses mahotas?
- Why did you not simply contribute to
- I ran out of memory computing Haralick features on 16 bit images. Is it not supported?
- What are the parameters to Local Binary Patterns?
- I am using mahotas in a scientific publication, is there a citation?
- Imread cannot find FreeImage
- Mahotas Internals
- The Why of mahotas
- Possible Tasks
- Version 1.4.3 (Oct 3 2016)
- Version 1.4.2 (Oct 2 2016)
- Version 1.4.1 (Dec 20 2015)
- Version 1.4.0 (July 8 2015)
- Version 1.3.0 (April 28 2015)
- Version 1.2.4 (December 23 2014)
- Version 1.2.3 (November 8 2014)
- Version 1.2.2 (October 19 2014)
- Version 1.2.1 (July 21 2014)
- Version 1.2 (July 17 2014)
- Version 1.1.1 (July 4 2014)
- 1.1.0 (February 12 2014)
- 1.0.4 (2013-12-15)
- 1.0.3 (2013-10-06)
- 1.0.2 (July 10 2013)
- 1.0.1 (July 9 2013)
- 1.0 (May 21 2013)
- 0.99 (May 4 2013)
- 0.9.8 (April 22 2013)
- 0.9.7 (February 03 2013)
- 0.9.6 (December 02 2012)
- 0.9.5 (November 05 2012)
- 0.9.4 (October 10 2012)
- 0.9.3 (October 9 2012)
- 0.9.2 (September 1 2012)
- 0.9.1 (August 28 2012)
- 0.9 (July 16 2012)
- 0.8.1 (June 6 2012)
- 0.8 (May 7 2012)
- 0.7.3 (March 14 2012)
- 0.7.2 (February 13 2012)
- 0.7.1 (January 6 2012)
- Full API Documentation