← all repositories
luispedro/mahotas

Old-school CV: 100+ algorithms, zero neural networks

A NumPy-native computer vision library that predates the deep-learning takeover and keeps chugging.

884 stars Python Computer Vision
mahotas
Velocity · 7d
+0.1
★ / day
Trend
steady
star history

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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.