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 を整理しています(例: C++ の cv::Mat ではなく opencv::core::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 ドキュメントから自動的に変換されます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト