Skip to main content

Mahotas: Computer Vision Library

Project description

Mahotas

Python Computer Vision Library

Mahotas is a library of fast computer vision algorithms (all implemented in C++ for speed) operating over numpy arrays.

Travis Coverage Status Downloads License Install with Anaconda Join the chat at https://gitter.im/luispedro/mahotas FOSSA Status

Python versions 2.7, 3.4+, are supported.

Notable algorithms:

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.

Please cite the mahotas paper (see details below under Citation) if you use it in a publication.

Examples

This is a simple example (using an example file that is shipped with mahotas) of calling watershed using above threshold regions as a seed (we use Otsu to define threshold).

# import using ``mh`` abbreviation which is common:
import mahotas as mh

# Load one of the demo images
im = mh.demos.load('nuclear')

# Automatically compute a threshold
T_otsu = mh.thresholding.otsu(im)

# Label the thresholded image (thresholding is done with numpy operations
seeds,nr_regions = mh.label(im > T_otsu)

# Call seeded watershed to expand the threshold
labeled = mh.cwatershed(im.max() - im, seeds)

Here is a very simple example of using mahotas.distance (which computes a distance map):

import pylab as p
import numpy as np
import mahotas as mh

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 = mh.distance(f)
p.imshow(dmap)
p.show()

(This is under mahotas/demos/distance.py.)

How to invoke thresholding functions:

import mahotas as mh
import numpy as np
from pylab import imshow, gray, show, subplot
from os import path

# Load photo of mahotas' author in greyscale
photo = mh.demos.load('luispedro', as_grey=True)

# Convert to integer values (using numpy operations)
photo = photo.astype(np.uint8)

# Compute Otsu threshold
T_otsu = mh.otsu(photo)
thresholded_otsu = (photo > T_otsu)

# Compute Riddler-Calvard threshold
T_rc = mh.rc(photo)
thresholded_rc = (photo > T_rc)

# Now call pylab functions to display the image
gray()
subplot(2,1,1)
imshow(thresholded_otsu)
subplot(2,1,2)
imshow(thresholded_rc)
show()

As you can see, we rely on numpy/matplotlib for many operations.

Install

If you are using conda, you can install mahotas from conda-forge using the following commands:

conda config --add channels conda-forge
conda install mahotas

Compilation from source

You will need python (naturally), numpy, and a C++ compiler. Then you should be able to use:

pip install mahotas

You can test your installation by running:

python -c "import mahotas as mh; mh.test()"

If you run into issues, the manual has more extensive documentation on mahotas installation, including how to find pre-built for several platforms.

Citation

If you use mahotas on a published publication, please cite:

Luis Pedro Coelho Mahotas: Open source software for scriptable computer vision in Journal of Open Research Software, vol 1, 2013. [DOI]

In Bibtex format:

@article{mahotas, author = {Luis Pedro Coelho}, title = {Mahotas: Open source software for scriptable computer vision}, journal = {Journal of Open Research Software}, year = {2013}, doi = {http://dx.doi.org/10.5334/jors.ac}, month = {July}, volume = {1} }

You can access this information using the mahotas.citation() function.

Development

Development happens on github (http://github.com/luispedro/mahotas).

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.

Links & Contacts

Documentation: https://mahotas.readthedocs.io/

Issue Tracker: github mahotas issues

Mailing List: Use the pythonvision mailing list for questions, bug submissions, etc. Or ask on stackoverflow (tag mahotas)

Main Author & Maintainer: Luis Pedro Coelho (follow on twitter or github).

Mahotas also includes code by Zachary Pincus [from scikits.image], Peter J. Verveer [from scipy.ndimage], and Davis King [from dlib], Christoph Gohlke, as well as others.

Presentation about mahotas for bioimage informatics

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.9 (Nov 12 2019)

  • Fix FreeImage detection (issue #108)

Version 1.4.8 (Oct 11 2019)

  • Fix co-occurrence matrix computation (patch by @databaaz)

Version 1.4.7 (Jul 10 2019)

  • Fix compilation on Windows

Version 1.4.6 (Jul 10 2019)

  • Make watershed work for >2³¹ voxels (issue #102)
  • Remove milk from demos
  • Improve performance by avoid unnecessary array copies in cwatershed(), majority_filter(), and color conversions
  • Fix bug in interpolation

Version 1.4.5 (Oct 20 2018)

  • Upgrade code to newer NumPy API (issue #95)

Version 1.4.4 (Nov 5 2017)

  • Fix bug in Bernsen thresholding (issue #84)

Version 1.4.3 (Oct 3 2016)

  • Fix distribution (add missing README.md file)

Version 1.4.2 (Oct 2 2016)

  • Fix resize\_to return exactly the requested size
  • Fix hard crash when computing texture on arrays with negative values (issue #72)
  • Added distance argument to haralick features (pull request #76, by Guillaume Lemaitre)

Version 1.4.1 (Dec 20 2015)

  • Add filter\_labeled function
  • Fix tests on 32 bit platforms and older versions of numpy

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
  • Add find() function
  • Add mean_filter() function
  • Fix cwatershed() overflow possibility
  • Make labeled functions more flexible in accepting more types
  • Fix crash in close_holes() with nD images (for n > 2)
  • Remove matplotlibwrap
  • Use standard setuptools for building (instead of numpy.distutils)
  • Add overlay() function

Version 1.1.1 (July 4 2014)

  • Fix crash in close_holes() with nD images (for n > 2)

1.1.0 (February 12 2014)

  • Better error checking
  • Fix interpolation of integer images using order 1
  • Add resize_to & resize_rgb_to
  • Add coveralls coverage
  • Fix SLIC superpixels connectivity
  • Add remove_regions_where function
  • Fix hard crash in convolution
  • Fix axis handling in convolve1d
  • Add normalization to moments calculation

See the ChangeLog for older version.

License

FOSSA Status

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

mahotas_nh-1.4.10-cp38-cp38-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.8 Windows x86-64

mahotas_nh-1.4.10-cp38-cp38-win32.whl (1.7 MB view details)

Uploaded CPython 3.8 Windows x86

mahotas_nh-1.4.10-cp38-cp38-manylinux2010_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

mahotas_nh-1.4.10-cp38-cp38-macosx_10_14_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

mahotas_nh-1.4.10-cp37-cp37m-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.7m Windows x86-64

mahotas_nh-1.4.10-cp37-cp37m-win32.whl (1.7 MB view details)

Uploaded CPython 3.7m Windows x86

mahotas_nh-1.4.10-cp37-cp37m-manylinux2010_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

mahotas_nh-1.4.10-cp37-cp37m-macosx_10_14_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.7m macOS 10.14+ x86-64

mahotas_nh-1.4.10-cp36-cp36m-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.6m Windows x86-64

mahotas_nh-1.4.10-cp36-cp36m-win32.whl (1.7 MB view details)

Uploaded CPython 3.6m Windows x86

mahotas_nh-1.4.10-cp36-cp36m-manylinux2010_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

mahotas_nh-1.4.10-cp36-cp36m-macosx_10_14_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.6m macOS 10.14+ x86-64

File details

Details for the file mahotas_nh-1.4.10-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: mahotas_nh-1.4.10-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for mahotas_nh-1.4.10-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 dd9fbf4f09487a98a7766bdee2e40399d664f3c6ca0441e346469df33a2f22e6
MD5 a084d8e2a37c111aefc2c43a98455bf8
BLAKE2b-256 b5a24a9429ca34ecfb83cb09e9dfa53327f75c840d8ef852c778e7bc4d5d0326

See more details on using hashes here.

File details

Details for the file mahotas_nh-1.4.10-cp38-cp38-win32.whl.

File metadata

  • Download URL: mahotas_nh-1.4.10-cp38-cp38-win32.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for mahotas_nh-1.4.10-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 9e0877c1a41319ff21fb97ba700d279b9b0692a179914fc41e8a75a7d0158f5d
MD5 597b053ce60f0b916507369acccdf9d3
BLAKE2b-256 3999c8ae3238545d9af53ade10fe76b4b42763a07c201a4bc76f3268fc88668c

See more details on using hashes here.

File details

Details for the file mahotas_nh-1.4.10-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: mahotas_nh-1.4.10-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 5.5 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.10

File hashes

Hashes for mahotas_nh-1.4.10-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f1d718c9ba6603b4d0bf5f97f4793d950225cf09416157346c4496179e578fc6
MD5 a8ddc61cd43843fe07d02648c9b13dd9
BLAKE2b-256 3716e179f9ea62b19d40bad8d14420b7439d70a799d8bb7b6d356d31e0b65379

See more details on using hashes here.

File details

Details for the file mahotas_nh-1.4.10-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: mahotas_nh-1.4.10-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for mahotas_nh-1.4.10-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c5cbd49d7130779d52bcf994bf443c5a6cbac3a822079f782a682451f4236c01
MD5 3e75a69cd6d231a2bc5d13dc78d54153
BLAKE2b-256 f787861c8d17e57c2d50eb389cc556ce75ccd2273b15dfc24865571e8da86d4c

See more details on using hashes here.

File details

Details for the file mahotas_nh-1.4.10-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: mahotas_nh-1.4.10-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

File hashes

Hashes for mahotas_nh-1.4.10-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 e890ff0bf0ed8c78bcc9c70938a71fae2a539969c682675042f2cb23888c791f
MD5 f751cb7b5c3f3d84c63f88eefa69df9d
BLAKE2b-256 c8f76c629a03aee7bab2b8dfc145351191ce9e81eeaab526c012c03c964a66f7

See more details on using hashes here.

File details

Details for the file mahotas_nh-1.4.10-cp37-cp37m-win32.whl.

File metadata

  • Download URL: mahotas_nh-1.4.10-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

File hashes

Hashes for mahotas_nh-1.4.10-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 7001d9639c4210d7be962a521460775d491c222d806b825762dbef3be56afc41
MD5 6ac931ab02b461a00b6efaf37d169f78
BLAKE2b-256 15fbb2850b0994d8b1a8a1488b0f5ac8b7880ca1e03abd7054af1710b3fed7c9

See more details on using hashes here.

File details

Details for the file mahotas_nh-1.4.10-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: mahotas_nh-1.4.10-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 5.7 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.10

File hashes

Hashes for mahotas_nh-1.4.10-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 1b3029eda1aaf24576061e3bbce2dee65cb396e38b54336690493e570234e3a8
MD5 fd9eaf564d08f96640b0e76a8661a3c8
BLAKE2b-256 e11ab07c2a82a31e7342440632c28c620263a0920bcac7815707012c706fb7ee

See more details on using hashes here.

File details

Details for the file mahotas_nh-1.4.10-cp37-cp37m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: mahotas_nh-1.4.10-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

File hashes

Hashes for mahotas_nh-1.4.10-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e6128790b8d325660946674f50df3e785ef262d3865eef869d2e882a279b6c9e
MD5 3810bf57b10e5941592e7de54d8e1dfd
BLAKE2b-256 a5dc47b78ad8641c5c83b46456b17f8c82d837ebda9f829428bf123701f3fd25

See more details on using hashes here.

File details

Details for the file mahotas_nh-1.4.10-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: mahotas_nh-1.4.10-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.8

File hashes

Hashes for mahotas_nh-1.4.10-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 00c990f2aea36a7eaf3bf61ee3f6fb2076b912998c82792261e3c27296170fa9
MD5 f213a84e833e3006e047d734cf6a75ba
BLAKE2b-256 3a2aba30342ec53b973170ad5bc4b8c385c01b04192878c9e82f0e697d53f4a3

See more details on using hashes here.

File details

Details for the file mahotas_nh-1.4.10-cp36-cp36m-win32.whl.

File metadata

  • Download URL: mahotas_nh-1.4.10-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.8

File hashes

Hashes for mahotas_nh-1.4.10-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 c19c7b2fc05e170aaab449475099c976da572a1e20dae327dd857171800aec04
MD5 dbe49c8ab23a4cec02113799a1fc92c1
BLAKE2b-256 bc507c4d0733252534d99d0e65fd00c138ecf7bf752492cefe6da9bfeaefcd21

See more details on using hashes here.

File details

Details for the file mahotas_nh-1.4.10-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: mahotas_nh-1.4.10-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 5.7 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.10

File hashes

Hashes for mahotas_nh-1.4.10-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 27523cd5901610f41f2756f3f73ece7e37e706fb330cae5e9bf88dda5b42825c
MD5 026ed9792dbf4d5790c61a356bcd8ae0
BLAKE2b-256 4ebe9f8d36a1681b1a06e0fb0d8ebed26eba873352a17b1db27786cc571b0160

See more details on using hashes here.

File details

Details for the file mahotas_nh-1.4.10-cp36-cp36m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: mahotas_nh-1.4.10-cp36-cp36m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.6m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.10

File hashes

Hashes for mahotas_nh-1.4.10-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 08dd39f206f3f0ad9dab3e0fcef50641be3bec84d63fe16e6436c8b731dc5b28
MD5 036d26f155d5dcbe2e1d76178a3d095a
BLAKE2b-256 a44023100ee0114add362dba65f8fe254b59334301d2648447350c1c4f4fd297

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page