Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
✓DOI references
Found 9 DOI reference(s) in README -
○Academic publication links
-
✓Committers with academic emails
7 of 34 committers (20.6%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.9%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Computer Vision in Python
Basic Info
- Host: GitHub
- Owner: luispedro
- License: other
- Language: Python
- Default Branch: main
- Homepage: https://mahotas.rtfd.io
- Size: 3.83 MB
Statistics
- Stars: 866
- Watchers: 48
- Forks: 149
- Open Issues: 24
- Releases: 6
Topics
Metadata Files
README.md
Mahotas
Python Computer Vision Library
Mahotas is a library of fast computer vision algorithms (all implemented in C++ for speed) operating over numpy arrays.
Python versions 3.7+, are supported.
Notable algorithms:
- watershed
- convex points calculations.
- hit & miss, thinning.
- Zernike & Haralick, LBP, and TAS features.
- Speeded-Up Robust Features (SURF), a form of local features.
- thresholding.
- convolution.
- Sobel edge detection.
- spline interpolation
- SLIC super pixels.
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).
```python
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,nrregions = mh.label(im > Totsu)
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):
```python 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:
```python 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
Totsu = mh.otsu(photo) thresholdedotsu = (photo > T_otsu)
Compute Riddler-Calvard threshold
Trc = mh.rc(photo) thresholdedrc = (photo > T_rc)
Now call pylab functions to display the image
gray() subplot(2,1,1) imshow(thresholdedotsu) subplot(2,1,2) imshow(thresholdedrc) 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:
bash
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:
bash
pip install mahotas
You can test your installation by running:
bash
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 = {https://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 (https://github.com/luispedro/mahotas).
You can set the DEBUG environment variable before compilation to get a
debug version:
bash
export DEBUG=1
python setup.py test
You can set it to the value 2 to get extra checks:
bash
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.18 (Jul 18 2024)
- Fix bug in Haralick features and NumPy 2 (thanks to @Czaki, see #150)
Version 1.4.17 (Jul 13 2024)
- Fix bug that stopped mahotas from working on Windows
Version 1.4.16 (Jul 3 2024)
- update for NumPy 2
- Add deprecated warning for freeimage
Version 1.4.15 (Mar 24 2024)
- Update build system (thanks to @Czaki, see #147)
Version 1.4.14 (Mar 24 2024)
- Fix code for C++17 (issue #146)
Version 1.4.13 (Jun 28 2022)
- Fix freeimage testing (and make freeimage loading more robust, see #129)
- Add GIL fixed (which triggered crashes in newer NumPy versions)
Version 1.4.12 (Oct 14 2021)
- Update to newer NumPy
- Build wheels for Python 3.9 & 3.10
Version 1.4.11 (Aug 16 2020)
- Convert tests to pytest
- Fix testing for PyPy
Version 1.4.10 (Jun 11 2020)
- Build wheels automatically (PR #114 by nathanhillyer)
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.mdfile)
Version 1.4.2 (Oct 2 2016)
- Fix
resize\_toreturn exactly the requested size - Fix hard crash when computing texture on arrays with negative values (issue #72)
- Added
distanceargument to haralick features (pull request #76, by Guillaume Lemaitre)
Version 1.4.1 (Dec 20 2015)
- Add
filter\_labeledfunction - Fix tests on 32 bit platforms and older versions of numpy
Version 1.4.0 (July 8 2015)
- Added
mahotas-features.pyscript - 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_sliceandborderarguments) - 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
Owner
- Name: Luis Pedro Coelho
- Login: luispedro
- Kind: user
- Location: Luxembourg & Shanghai
- Company: Fudan University
- Website: https://luispedro.org
- Twitter: luispedrocoelho
- Repositories: 204
- Profile: https://github.com/luispedro
Citation (CITATION)
If you use mahotas on a scientific publication, please cite:
**Luis Pedro Coelho** Mahotas: Open source software for scriptable computer
vision in Journal of Open Research Software, vol 1, 2013. [`DOI
<https://dx.doi.org/10.5334/jors.ac>`__]
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 = {https://dx.doi.org/10.5334/jors.ac},
month = {July},
volume = {1}
}
You can access this information using the ``mahotas.citation()`` function.
GitHub Events
Total
- Issues event: 4
- Watch event: 38
- Delete event: 1
- Issue comment event: 1
- Push event: 3
- Pull request event: 1
- Fork event: 6
- Create event: 1
Last Year
- Issues event: 4
- Watch event: 38
- Delete event: 1
- Issue comment event: 1
- Push event: 3
- Pull request event: 1
- Fork event: 6
- Create event: 1
Committers
Last synced: 8 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Luis Pedro Coelho | l****s@l****g | 753 |
| Luis Pedro Coelho | l****c@c****u | 442 |
| luispedro | l****o@a****5 | 34 |
| cgohlke | c****e@u****u | 13 |
| Gabi Davar | g****o@g****m | 8 |
| MattyG | m****l@g****m | 5 |
| Jianyu Wang | j****u@g****m | 4 |
| Grzegorz Bokota | b****b@g****m | 3 |
| Łukasz Stolcman | v****s@g****m | 3 |
| Lukas | m****s@g****m | 2 |
| John Kirkham | k****j@j****g | 2 |
| Karol M. Langner | k****r@g****m | 2 |
| Klaus-Michael Aye | k****e@g****m | 2 |
| Stefan van der Walt | s****n@s****a | 2 |
| hsiao yi | h****4@g****m | 2 |
| Andrew Stromnov | s****v@g****m | 1 |
| Fazlul Shahriar | f****r@g****m | 1 |
| Gabe Schwartz | h****k@g****m | 1 |
| Alexander Tolkachev | a****v@a****m | 1 |
| andreyrcdias | a****a@g****m | 1 |
| Sandro Knauss | s****s@p****e | 1 |
| Guilherme Pires | g****s@a****g | 1 |
| Eben Olson | e****n@e****t | 1 |
| David McInnis | d****m@e****u | 1 |
| Guillaume Lemaitre | g****8@g****m | 1 |
| James Boyden | g****b@j****u | 1 |
| Nathan Hillyer | n****r@g****m | 1 |
| Shahbaz Khan | s****5@g****m | 1 |
| The Gitter Badger | b****r@g****m | 1 |
| Tim Gates | t****s@i****m | 1 |
| and 4 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 72
- Total pull requests: 43
- Average time to close issues: 4 months
- Average time to close pull requests: 25 days
- Total issue authors: 63
- Total pull request authors: 32
- Average comments per issue: 2.74
- Average comments per pull request: 2.35
- Merged pull requests: 32
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 2
- Pull requests: 2
- Average time to close issues: about 17 hours
- Average time to close pull requests: N/A
- Issue authors: 2
- Pull request authors: 1
- Average comments per issue: 0.5
- Average comments per pull request: 0.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- hackermd (4)
- anntzer (4)
- Czaki (3)
- jakirkham (2)
- ErichZimmer (1)
- hccheng (1)
- bethac07 (1)
- sanctusin (1)
- skupr-anaconda (1)
- ediarellano41-ai (1)
- paulmueller (1)
- glemaitre (1)
- Al92130 (1)
- duytrung (1)
- baloe (1)
Pull Request Authors
- Czaki (5)
- mindw (5)
- jasonzutty (2)
- databaaz (2)
- hsiaoyi0504 (2)
- luispedro (2)
- SujoyKG (2)
- jakirkham (2)
- abdullahelen (2)
- daavve (1)
- jboy (1)
- ebenolson (1)
- odidev (1)
- stromnov (1)
- rahu974 (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 3
-
Total downloads:
- pypi 28,913 last-month
- Total docker downloads: 143
-
Total dependent packages: 30
(may contain duplicates) -
Total dependent repositories: 272
(may contain duplicates) - Total versions: 90
- Total maintainers: 1
pypi.org: mahotas
Mahotas: Computer Vision Library
- Homepage: https://luispedro.org/software/mahotas
- Documentation: https://mahotas.readthedocs.io/
- License: MIT
-
Latest release: 1.4.18
published over 1 year ago
Rankings
Maintainers (1)
proxy.golang.org: github.com/luispedro/mahotas
- Documentation: https://pkg.go.dev/github.com/luispedro/mahotas#section-documentation
- License: other
-
Latest release: v1.4.18
published over 1 year ago
Rankings
conda-forge.org: mahotas
Mahotas is a library of fast computer vision algorithms (all implemented in C++) operating over numpy arrays.
- Homepage: https://mahotas.readthedocs.io/
- License: MIT
-
Latest release: 1.4.13
published over 3 years ago