Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Rust
  3. imageproc

imageproc

MITRust

A Rust image processing library for computer vision and graphics applications, built on the image crate.

GitHubGitHub
956 stars177 forks0 contributors

What is imageproc?

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.

Target Audience

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.

Value Proposition

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.

Overview

Image processing operations

Use Cases

Best For

  • Implementing computer vision algorithms like edge detection or template matching in Rust
  • Building graphics editors or image annotation tools with drawing capabilities
  • Processing large images efficiently using parallelized operations
  • Performing morphological operations on binary images for segmentation or analysis
  • Developing image filters or effects with custom convolution kernels
  • Creating visualizations by drawing shapes and text onto images programmatically

Not Ideal For

  • Applications requiring real-time image processing with strict latency constraints, as parallel execution may introduce overhead and requires per-case benchmarking.
  • Projects primarily using non-linear color spaces (e.g., sRGB) without built-in automatic conversion, necessitating manual color space management.
  • Developers needing support for 3D images, video sequences, or other higher-dimensional image data, as the library is focused exclusively on 2D processing.
  • Teams seeking a drop-in solution with pre-built GUI tools or visualization, since it's a low-level library requiring code integration for display features.

Pros & Cons

Pros

Comprehensive Feature Set

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.

Performance-Oriented Design

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.

Color Space Awareness

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.

Well-Tested and Documented

Emphasizes thorough testing and clear API documentation as core goals, providing a reliable foundation for development without hidden bugs or inconsistencies.

Cons

Color Space Complexity

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.

Limited Image Support

Explicitly excludes support for higher-dimensional images or generic storage formats, restricting use to 2D images and potentially limiting adaptability in advanced scenarios.

Performance Uncertainty

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.

External Dependencies for Display

Features like image display require optional dependencies such as sdl2, adding setup complexity and potential compatibility issues for visualization tasks.

Frequently Asked Questions

Quick Stats

Stars956
Forks177
Contributors0
Open Issues71
Last commit16 days ago
CreatedSince 2015

Tags

#no-std-optional#graphics#drawing#image-processing#rust-library#parallel-processing#computer-vision#filtering

Built With

S
SDL2
R
Rust
R
Rayon

Included in

Rust56.6k
Auto-fetched 14 hours ago

Related Projects

imageimage

Encoding and decoding images in Rust

Stars5,753
Forks697
Last commit3 days ago
opencv-rustopencv-rust

Rust bindings for OpenCV

Stars2,420
Forks181
Last commit24 days ago
cvcv

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.

Stars1,034
Forks71
Last commit9 months ago
dicom-rsdicom-rs

Rust implementation of the DICOM standard

Stars543
Forks116
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub