Old-school CV: 100+ algorithms, zero neural networks
A NumPy-native computer vision library that predates the deep-learning takeover and keeps chugging.

What it does
Mahotas is a Python computer vision library with 100+ image processing functions—watershed segmentation, SURF features, Haralick textures, SLIC superpixels, edge detection, thresholding, and more. Everything is implemented in C++ and operates directly on NumPy arrays, so you call it from Python but the heavy lifting happens in compiled code.
The interesting bit
This is pre-deep-learning computer vision: classical algorithms, deterministic results, no GPU required. The project has been around since at least 2013 (academic citation in the README) and still gets monthly-ish releases. The author, Luis Pedro Coelho, keeps it alive with a stability promise—old code still runs, just faster.
Key highlights
- C++ implementations wrapped for Python; NumPy arrays in, NumPy arrays out
- Supports Python 3.7 through 3.13; recently updated for NumPy 2 compatibility
- Notable algorithms: watershed, SURF, Zernike/Haralick/LBP/TAS features, SLIC superpixels, spline interpolation
- Meson-based build; install via conda-forge or pip
- Includes demo images and example scripts (check
mahotas/demos/)
Caveats
- The “over 100 functions” claim is in the README but not enumerated; you’ll need to dig through docs or source to see the full list
- Recent changelog shows mostly maintenance (NumPy updates, Windows build fixes, C++17 compatibility) rather than new algorithms
- FreeImage support is deprecated as of v1.4.16
Verdict
Worth a look if you need classical CV on CPU-bound pipelines, or if you’re maintaining legacy scientific code that predates OpenCV’s Python dominance. Skip it if you need modern neural-network-based vision; this is the other tradition entirely.