• Stars
    star
    103
  • Rank 333,046 (Top 7 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 9 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An advanced image processing library for Rust.

ImageProc

Build Status

Maintainers: @chyh1990

Note: this project is under active depvelopment, API may change!

imageproc is a advanced image proccessing library for the Rust language in order to provide:

  • generic pixel, image, geometry data structure alike OpenCV
  • Image IO for variable image file format
  • image transformations
  • image processing routines, e.g. convolution, gaussian blur, etc.
  • canvas and rasterization (TBD)

This library is inspired by the following projects:

Usage

Adding the following to the Cargo.toml in your project:

[dependencies.imageproc]
git = "https://github.com/chyh1990/imageproc.git"

and import using extern crate:

extern crate imageproc;

Most data structures and routines are exposed uder imageproc prefix:

extern crate imageproc;

use std::path::Path;
use imageproc::image::*;
use imageproc::conv;
use imageproc::imageio::{ImageIO, FreeImageIO}; 

fn main() {
	let img: ImageBgra = FreeImageIO::from_path(&Path::new("cat.jpg")).unwrap();
	let out = conv::gaussian_blur(&img, 11, 0f32);

	let target = Path::new("out.png");
	FreeImageIO::save(&target, &out).unwrap();
}

Supported Image Format

imageproc use cross-platform native library to decode/encode images. The only supported backend is FreeImage, it includes decoders for most image formats, and encoders for most common used formats.

Contribution

Fork & pull request on Github.