State of opencv bindings and image processing in general

I'm trying to get a sense of the landscape for image processing in Rust, with a very specific need for bindings to openCV and tesseract-ocr.

I have some specific goals of building an object detection model for text as well as optical character recognition The combo of opencv and tesseract are fantastic but I'd rather not build this as a c++ project, but I also would like to use/contribute to existing community projects in Rust before rolling any of my own stuff.

I'm looking to see if anyone can speak about the listed projects directly, in terms of their quality, activity (often its hard to tell how active some projects when an API stablizes it may not have a lot of recent commit activity), production use, etc.... There are 7 projects listed here, which seem to be either the most comprehensive and/or maintained....

I'll break this down in 2 parts, the first is rust wrappers for 2 existing c++ libs, second is image processing in general.

  1. BINDINGS
    It would be awesome to see pure rust projects with the goals of tesseract and opencv, but not very practical for the short term. I've found a couple Rust packages with bindings for opencv/tesseract:

tesseract-rs
opencv-rust
cv-rs

Only the last project (cv-rs) looks like its still active. I'm curious if anyone has more insight to the life of these projects or if they know of others I have not listed.

For metadata I see there is a good exiv2 wrapper:

rexiv2

  1. PURE RUST
    It looks like some of the larger and more well established projects here are from the PistonDevelopers group:

image
imageproc

The latter with a stated goal of:

A performant, well-tested, well-documented library with a consistent API, suitable for use as the basis of computer vision applications or graphics editors.

Between those two there seems to be quite a bit of coverage and while I have not yet dug deeper they seem to cover a lot of ground.

Also of note is an exif image metadata in pure rust:

exif-rs

1 Like