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

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.10 (Jun 11 2020)

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 Distribution

mahotas-1.4.10.tar.gz (1.5 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8Windows x86

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

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.8macOS 10.14+ x86-64

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

Uploaded CPython 3.7mWindows x86-64

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

Uploaded CPython 3.7mWindows x86

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

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.7mmacOS 10.14+ x86-64

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

Uploaded CPython 3.6mWindows x86-64

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

Uploaded CPython 3.6mWindows x86

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

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.6mmacOS 10.14+ x86-64

File details

Details for the file mahotas-1.4.10.tar.gz.

File metadata

  • Download URL: mahotas-1.4.10.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.20.1 setuptools/40.4.0 requests-toolbelt/0.9.1 tqdm/4.26.0 CPython/3.6.8

File hashes

Hashes for mahotas-1.4.10.tar.gz
Algorithm Hash digest
SHA256 2e1bf5c058f439f2dab1b11d1bfe03d1d99b3761375a4a4159a9f379e0d9447e
MD5 5510bff1d1eeb68aed856b5aae38f1f1
BLAKE2b-256 50e3fee9071fd20d55de565105cc61c6650fe9a55fdd6ce1306b1ad75f3b6399

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mahotas-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-1.4.10-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 7ff188daf10e57212dd3e20539bbef65aa304d8b820dcba49d0a98f44f2ed780
MD5 90c86fbf3c7db9a8a74ac0567eca9819
BLAKE2b-256 3bb847150a5e0032b414e860d7a66141608e608e6e55cd1c0e015db9b4e05b7e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mahotas-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-1.4.10-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 7955dbaaa88a40bcfe2580c784121f2ae81af818fbf23036b9a84a653bb13fb8
MD5 e873537a457050a19c7babc9ef7c1cb4
BLAKE2b-256 c80ecc370e62a937730697e5df18b428f8b6e8c12a757d6518923d08ad18f13c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mahotas-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-1.4.10-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ee5495363a4651afa11e98ac9039e9b6ddd2e7fcea6bc95092e708e0e51e68f0
MD5 37e2cca8650776bb73957e88bca1da84
BLAKE2b-256 b921c2e225fc7a5052f74193a4d748e3647b0a69c7f8ee30715b1b234e6c8177

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mahotas-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-1.4.10-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 d1e8a0129bb2184469efa50ed2e4bd912188763601b5b2370b38b0fca0c7083d
MD5 e16d5445e5ed7afe7b1c2c36f4f6c3c6
BLAKE2b-256 ca726edba2b62cfc8294c9005832305d3521510f8f2ab6152b133087af7a49ab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mahotas-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-1.4.10-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 f7bc5b1115c60797c6ab933d409ba38e2bab0e8fb5bcb7bebe827ec5d25ea22a
MD5 549141a608b5d6f38f71530afab6e094
BLAKE2b-256 fffbe6f1c7e1f05ec8afb21adb9142f9a34952c0f92fc272fa1ba952b3fee9e5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mahotas-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-1.4.10-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 4682238c2c09f7b0939edeb7a151908d652584dd720860a96c20d472265c5b6c
MD5 cfdf394c7fad75e6c857ab7ffa1e1991
BLAKE2b-256 4e32405fe0d22d155e3cf49ab0459f71d6c3029d526ba24cf7da8f3b21662fa9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mahotas-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-1.4.10-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b941821be00194430704651a82b077d8981d5fe6f067a21ea54a5f8b43a50626
MD5 74a25c90bcf8dc5e9ce09d5758418b9a
BLAKE2b-256 cc7393b03cd2927db045e78a398cf5296a07c986ab693183b132a9cb5f469cdf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mahotas-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-1.4.10-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c1497029c97f3a1c971f7a24247f3275051c496af7919df375b4bf06f9bc14fa
MD5 0375bfb85a606721e401649563f7516c
BLAKE2b-256 ea4873fa6f472b9c4134b79c761b3492c87d3993c370940bb743aef1cbd9fea3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mahotas-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-1.4.10-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 d692870072b080d8836f96f8070ba226e3c6e55a3ed437e13c756bb34c3e23a7
MD5 c9f522f965aa9c21ea7f7733d5fa22fc
BLAKE2b-256 37b714c80950d17a4899c315e9f79c2349a68abe3048846cfc280b9008cf8d30

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mahotas-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-1.4.10-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 09ec0fc0429fa4767e3f201838da816bc876f999b8a554060e1742c87a08e6b6
MD5 7bfd1895c3525b6b17bdc688419ab05c
BLAKE2b-256 7d578a269786928b8f4f8a69cdba34098073f96a7f82d7898f14db63c4b9ea58

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mahotas-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-1.4.10-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e074b918c27ab3cb7771b5d244d6347c5d48994819e54e0661ee0fe5ef842ac6
MD5 38e0454c25306e5ea306389e67031d73
BLAKE2b-256 ed1f01d805bc3588da8343373c279702d0fca4dc55f631873d9f2e159f9287ac

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mahotas-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-1.4.10-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 84c04fb0dabc9a47913c119dbd09d7c2aed133433ab41f1daa04f588825d7727
MD5 9606390bc26975f57bcf58249fb93f9f
BLAKE2b-256 9a58dd7211f56c7cd63ba9a4c9d5795bcd821accf96e11b078e1d32c1a78093d

See more details on using hashes here.

Supported by

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