A Rust image processing library for computer vision and graphics applications, built on the image crate.
imageproc is a Rust library for image processing that provides a wide range of operations including filtering, drawing, geometric transformations, and morphological operations. It is built on top of the `image` crate and is designed to be a reliable foundation for computer vision applications and graphics tools. The library emphasizes performance, thorough testing, and clear documentation while assuming linear color spaces to avoid common gamma-related issues.
Rust developers working on computer vision projects, graphics editors, or any application requiring robust image manipulation capabilities. It is suitable for both academic research and industrial applications where performance and correctness are critical.
Developers choose imageproc for its comprehensive feature set, consistent API, and strong focus on performance and testing. Unlike more generic libraries, it prioritizes practical utility for 2D image processing and offers parallelized versions of key functions, making it a go-to choice for building efficient image-based applications in Rust.
Image processing operations
Offers a wide range of operations including geometric transformations, filtering, drawing, and morphological operations, making it suitable for building computer vision applications and graphics tools.
Provides multi-threaded versions of key functions using Rayon for parallel processing, optimizing performance on large images, as highlighted in the README's parallelism section.
Assumes linear color spaces to avoid gamma-related artifacts, with documented guidance on proper usage, ensuring accurate color processing in applications like filtering and drawing.
Emphasizes thorough testing and clear API documentation as core goals, providing a reliable foundation for development without hidden bugs or inconsistencies.
Requires manual handling of gamma correction for common non-linear formats like sRGB, which can be error-prone and adds overhead for developers unfamiliar with color theory.
Explicitly excludes support for higher-dimensional images or generic storage formats, restricting use to 2D images and potentially limiting adaptability in advanced scenarios.
Parallel versions may not always be faster, depending on image size and operation, necessitating benchmarking for optimal use—a trade-off admitted in the README.
Features like image display require optional dependencies such as sdl2, adding setup complexity and potential compatibility issues for visualization tasks.
Encoding and decoding images in Rust
Rust bindings for OpenCV
Rust CV mono-repo. Contains pure-Rust dependencies which attempt to encapsulate the capability of OpenCV, OpenMVG, and vSLAM frameworks in a cohesive set of APIs.
Rust implementation of the DICOM standard
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.