Mahotas currently has over 100 functions for image processing and computer
vision and it keeps growing.

The release schedule is roughly one release a month 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). In a few unfortunate cases, there was a bug in the old
code and your results will change for the better.

Development

You can set the DEBUG environment variable before compilation to get a
debug version:

export DEBUG=1
python setup.py test

You can set it to the value 2 to get extra checks:

export DEBUG=2
python setup.py test

Be careful not to use this in production unless you are chasing a bug. Debug
level 2 is very slow as it adds many runtime checks.

The Makefile that is shipped with the source of mahotas can be useful too.
make debug will create a debug build. make fast will create a non-debug
build (you need to make clean in between). make test will run the test
suite.

For more general discussion of computer vision in Python, the pythonvision
mailing list is a much
better venue and generates a public discussion log for others in the future.
You can use it for mahotas or general computer vision in Python questions.

Recent Changes

Version 1.4.0 (July 8 2015)

Added mahotas-features.py script

Add short argument to citation() function

Add max_iter argument to thin() function

Fixed labeled.bbox when there is no background (issue #61, reported by Daniel
Haehn)

bbox now allows dimensions greater than 2 (including when using the
as_slice and border arguments)

Extended croptobbox for dimensions greater than 2

Added use_x_minus_y_variance option to haralick features

Add function lbp_names

Version 1.3.0 (April 28 2015)

Improve memory handling in freeimage.write_multipage

Fix moments parameter swap

Add labeled.bbox function

Add return_mean and return_mean_ptp arguments to haralick function

Add difference of Gaussians filter (by Jianyu Wang)

Add Laplacian filter (by Jianyu Wang)

Fix crash in median_filter when mismatched arguments are passed

Fix gaussian_filter1d for ndim > 2

Version 1.2.4 (December 23 2014)

Add PIL based IO

Version 1.2.3 (November 8 2014)

Export mean_filter at top level

Fix to Zernike moments computation (reported by Sergey Demurin)

Fix compilation in platforms without npy_float128 (patch by Gabi Davar)

Version 1.2.2 (October 19 2014)

Add minlength argument to labeled_sum

Generalize regmax/regmin to work with floating point images

Allow floating point inputs to cwatershed()

Correctly check for float16 & float128 inputs

Make sobel into a pure function (i.e., do not normalize its input)

Fix sobel filtering

Version 1.2.1 (July 21 2014)

Explicitly set numpy.include_dirs() in setup.py [patch by Andrew Stromnov]

Version 1.2 (July 17 2014)

Export locmax|locmin at the mahotas namespace level

Break away ellipse_axes from eccentricity code as it can be useful on
its own