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 モジュール名(例:
imgproc、highgui)に従った機能を含み、必要なものだけを有効化できる。 - C++ 演算子のマッピング:C++ の演算子(例:
+、-、*)を対応する Rust 関数(例:add()、sub()、mul())に変換。 - 統合機能:
rgbおよびhalf(f16)クレートとの統合を提供。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト