twistedfall/opencv-rust

OpenCV API bindings for Rust

解决的问题

本项目提供 OpenCV 的 Rust 绑定,允许开发者在 Rust 编程语言中使用强大的 C++ 计算机视觉库。它弥合了 OpenCV 广泛的视觉功能与 Rust 现代系统编程环境之间的鸿沟。

运作方式

此 crate 使用 libclang 来解析 OpenCV 的 C++ 头文件,生成对应 C++ API 的 C 接口,然后将该 C 接口封装于 Rust 中。它通过为每个主要的 OpenCV 模块创建一个 Rust 模块来组织 API(例如 opencv::core::Mat 取代 C++ 的 cv::Mat)。为了使 API 更符合人体工程学,它将 C++ 的方法与字段名称转换为 snake_case,并提供类型处理的便利函数。

适用对象

专为需要将计算机视觉功能集成至应用程序,且不想直接编写 C++ 代码的 Rust 开发者所设计。

特色亮点

  • 广泛的版本支持:支持 OpenCV 4.x 与 5.x,并提供 3.4 的弃用支持。
  • 模块化设计:功能可依模块名称启用(例如 imgproc、highgui),让使用者能自定义依赖项占用空间。
  • 跨平台:可在 Linux、macOS 与 Windows 上运行。
  • C++ 运算符映射:将常见的 C++ 运算符(如 +、-、*、/)映射至对应的 Rust 函数(如 add()、sub()、mul()、div())。
  • 自动化文档:API 文档会自动从 OpenCV 的 doxygen 文档进行转换。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目