twistedfall/opencv-rust

Rust bindings for OpenCV

解决的问题

该项目为广泛使用的计算机视觉库 OpenCV 提供了 Rust 绑定。它使开发者能够在 Rust 编程语言中使用 OpenCV 的丰富图像处理和计算机视觉功能,弥合了 OpenCV 的 C++ 实现与 Rust 生态系统之间的差距。

工作原理

该 crate 使用 libclang 解析 OpenCV 的 C++ 头文件,生成 C++ API 的 C 接口,然后将该 C 接口封装为 Rust 代码。为了降低用户的构建时间,生成的 Rust 代码直接提交到仓库中,而不是在每次用户构建时重新生成。它将 C++ 的 cv:: 命名空间映射为对应主要 OpenCV 模块的独立 Rust 模块(例如 opencv::core::Mat)。

适用人群

专为需要使用行业标准 OpenCV 库执行计算机视觉任务(如图像操作、目标检测或特征提取)的 Rust 开发者设计。

主要亮点

  • 广泛的版本支持:支持 OpenCV 4.x 和 5.x,对 3.4 版本提供已弃用支持。
  • 跨平台:支持 Linux、macOS 和 Windows。
  • 模块化设计:功能按 OpenCV 模块命名(如 imgprochighgui),用户可仅启用所需部分。
  • C++ 运算符映射:将 C++ 运算符(如 +-*)转换为对应的 Rust 函数(如 add()sub()mul())。
  • 集成支持:提供与 rgbhalf(f16)库的集成。

相关

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