twistedfall/opencv-rust

Rust bindings for OpenCV

何を解決するか

このプロジェクトは、広く使われているコンピュータビジョンライブラリである OpenCV 用の Rust バインディングを提供します。これにより、開発者は Rust プログラミング言語内で OpenCV の広範な画像処理およびコンピュータビジョン機能を利用でき、OpenCV の C++ 実装と Rust のエコシステムの間のギャップを埋めます。

動作方法

このクレートは libclang を使って OpenCV の C++ ヘッダーを解析し、C++ API 用の C インターフェースを生成した後、その C インターフェースを Rust でラップします。ユーザーのビルド時間の短縮を図るために、生成された Rust コードは毎回のビルド時に生成されるのではなく、リポジトリに直接コミットされています。C++ の cv:: 名前空間は、主要な OpenCV モジュール(例:opencv::core::Mat)に対応する個別の Rust モジュールにマッピングされます。

対象ユーザー

OpenCV ライブラリを用いて画像操作、オブジェクト検出、特徴抽出などのコンピュータビジョンタスクを実行したい Rust 開発者向けに設計されています。

特徴

  • 広範なバージョン対応:OpenCV 4.x および 5.x をサポートし、3.4 については非推奨サポートを提供。
  • クロスプラットフォーム:Linux、macOS、Windows で動作。
  • モジュール構造:OpenCV モジュール名(例:imgprochighgui)に従った機能を含み、必要なものだけを有効化できる。
  • C++ 演算子のマッピング:C++ の演算子(例:+-*)を対応する Rust 関数(例:add()sub()mul())に変換。
  • 統合機能rgb および half(f16)クレートとの統合を提供。

関連

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