imageproc
Image processing operations for Rust, built on the image crate
Repository Health
Technical Analysis
imageproc is a Rust image processing library that builds on top of the popular image crate to provide a broad collection of computer-vision and image-manipulation operations. It covers filtering, edge and corner detection, morphology, geometric transformations, drawing, and feature extraction.
The crate is designed as a pure-Rust toolkit for tasks that go beyond simple decoding and encoding, giving developers building blocks for template matching, contour extraction, Hough transforms, HOG descriptors, and more.
What You Get
- Filtering primitives including Gaussian, box, median, and separable convolutions
- Edge, corner, and gradient detectors such as Canny and FAST
- Drawing helpers for lines, shapes, and text on image buffers
- Geometric transforms, warping, and affine/projective mapping
- Feature and shape tools: contours, Hough transforms, HOG, and template matching
Common Use Cases
- Preprocessing images for computer-vision and machine-learning pipelines
- Detecting edges, corners, and contours in Rust applications
- Drawing annotations, shapes, and text onto rendered images
- Template matching and shape detection without pulling in OpenCV
Under The Hood
Architecture — imageproc is a flat but well-factored crate where each module in src/ implements a family of operations (filter, edges.rs, corners.rs, drawing, geometric_transformations.rs, hough.rs, hog.rs, template_matching.rs), all operating over the image crate’s buffer and pixel traits via shared abstractions in definitions.rs and map.rs. Tech Stack — Rust edition 2024 (MSRV 1.87) depending on image, nalgebra, num, itertools, rand, and approx, with optional rayon parallelism, ab_glyph text rendering, rustdct FFT, and sdl2 display features. Code Quality — The project is mature and actively maintained, with property-based testing utilities (proptest_utils.rs), a dedicated tests/ and benches/ layout, and extensive doc comments including KaTeX-rendered math. API Design — Functions are grouped by task with predictable naming and operate directly on image buffers, so users familiar with the image crate can adopt individual operations without learning a new object model.