Skip to content

Rust crate to convert opencv Mat to image DynamicImage

License

Notifications You must be signed in to change notification settings

VitalBio/mat2image

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mat2image

Rust crate that exposes ToImage trait.

It implements ToImage for Mat to convert it into DynamicImage.

It also exposes ToImageUnsafe. The rationale behind this, comes after learning through profiling that Mat::iter is painfully slow. Then Mat::to_image_unsafe is implemented using Mat::data accessing the raw data.

Running examples

Save as

This example reads an image (examples/tinta_helada.jpg) using opencv and saves it using image API.

cargo run --release --example save_as [output_name[.jpg]=out.jpg]

Profiling

When noticing that to_image takes too much time, I profiled using perf and visualized it with Firefox Profiler.

Full profiling:

# build example with debug symbols
cargo build --example save_as

# record perf data
# sudo because of `paranoid` kernel setting
sudo perf record -g -F 999 ./target/debug/examples/save_as

# convert output to firefox readable type
sudo perf script -F +pid >save_as.perf

Then load it in Firefox Profiler.

References

Notes

  • Can we convert BGR to RGB cheaply? - Seems like it can't be done: image#1723
  • cv-convert does not have implementation for Mat -> DynamicImage yet. There is an issue raised to merge this code into cv_convert.

About

Rust crate to convert opencv Mat to image DynamicImage

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 66.8%
  • Shell 31.8%
  • Makefile 1.4%