cocoa-xu/evision

Evision: An OpenCV-Erlang/Elixir binding

What it solves

evision provides Elixir bindings for OpenCV, allowing developers to perform computer vision tasks directly within the Elixir language. It automates the process of generating these bindings from the OpenCV source code, ensuring that the rest of the OpenCV ecosystem's functionality is accessible to Elixir users.

How it works

The project pulls the OpenCV source code from GitHub and uses modified versions of OpenCV's own Python binding generators (gen2.py and hdr_parser.py) to automatically generate corresponding Elixir bindings. It supports a wide range of platforms (Linux, macOS, FreeBSD, and Windows) and provides precompiled binaries to simplify installation.

Who it’s for

Elixir developers who need to integrate computer vision capabilities—such as image processing, OCR (via Tesseract), and CUDA-accelerated processing—into their applications, including those targeting embedded systems via Nerves.

Highlights

  • Broad Platform Support: Precompiled binaries available for various architectures including x86_64, aarch64, RISC-V, and more.
  • Automated Binding Generation: Dynamically generates bindings from OpenCV source code.
  • Hardware Acceleration: Optional CUDA support for high-performance vision tasks.
  • Extensible: Supports opencv_contrib modules for additional specialized vision algorithms.
  • Nerves Integration: Optimized for use in embedded Elixir environments.

Related

  • Project
  • Project
  • Project
  • Project
  • Project