OpenCV 用の .Net (dotNet) ラッパー?[閉まっている]
-
01-07-2019 - |
質問
いくつかあるのを見てきました。 opencvdotnet, シャープCV, EmguCV, ワン・オン・コード・プロジェクト.
これらのいずれかを経験した人はいますか?Code Project にあるものを少し試してみましたが、何か複雑なことをしようとするとすぐに、キャッチできない厄介な例外がいくつか発生しました (つまり、メッセージボックスの例外)。クロスプラットフォーム (Mono をサポート) が最適です。
他のヒント
を使用しております OpenCVシャープ Google コードの Web サイトは日本語ですが、最新の OpenCV ビルドが使用されており、IDisposable が全体に組み込まれています。これまでに見た他のものよりも多くの機能を提供しているようで、まだアクティブです。非常に広範なサンプルプログラムも含まれています。
元の質問が次の場所で行われたことに注意することが重要だと思います 2008, 、OpenCV 2.0は年にリリースされました。 2009. 。バージョン 2.0 リリースでは、OP が直面していた古い C インターフェイスよりもはるかに扱いやすい C++ ラッパーが導入されました。私の .NET プロジェクトでは、すべてのグラフィック操作をネイティブ C++ に残します。
これを試して: OpenCV ライブラリにリンクする C++/CLR DLL プロジェクトを作成します。OpenCV マニュアルには、Windows C++ EXE に対してこれを行う方法が説明されています。同じ手順が C++/CLR DLL でも機能します。もちろん、DLL は .NET EXE から呼び出し可能なメソッドをエクスポートします。
これをテストするには、少し調整するだけで、OpenCV サンプルのいずれかを DLL に組み込むことができるはずです。(.CPP ファイルをプロジェクトに追加し、main() 関数をクラス メンバーに変換します。- ドリルはご存知でしょう...) 良いテスト候補は、「mat_mask_operations」サンプルかもしれません。
OpenCV.NET は NuGet から入手できます
https://bitbucket.org/horizongir/opencv.net
https://www.nuget.org/packages/OpenCV.Net
プロジェクト サイトの機能のリストは次のとおりです。
opencv.netは、人気のあるOpenCVコンピュータービジョンと画像処理ライブラリの.NETインターフェイスです。これらのバインディングは1年にわたって開発され、他の試みから欠落している多くの機能、つまり:
- クロスプラットフォーム Mono 互換性 (P/Invoke のみが使用されます)
- 最新の C API をほぼ 100% サポート (文書化されていない関数を含む)
- サポートされているすべてのメソッド、クラス、列挙メンバーに関する完全なドキュメント/インテリセンス (さまざまなソースから苦労して採掘)
- 例外のサポート
- ガベージコレクターに優しい:
- GC は行列とイメージによって使用される実際のメモリを認識します。
- ガベージ コレクションが同時に発生した場合でも、ポインタは関数呼び出しに耐えることが保証されています。
- 可能な限り C++ API に従ったオブジェクト モデル (将来の C++ API のサポート強化に向けて)
- BSD スタイルのライセンス (MIT)
最良のラッパーはopencvsharpだと思いますhttp://code.google.com/p/opencvsharp/
EmguCV を使用して、C# で OpenCv を簡単に開始できるようにする NuGet パッケージを作成しました。
それをチェックしてください!Visual Studio で検索して追加します。 myEmguCV.Net NuGet パッケージ。
SharperCV は私たちが選んだツールであり、私たちを失望させませんでした。 ロボットプロジェクト. 。現在は放棄済みとしてマークされていますが、コードは非常に良好な状態にあり、必要に応じてカスタマイズするにはわずかな調整のみが必要です。メッセージボックスはなく、実際には非常にまともな例外処理です。
ただし、相互運用性レイヤーがあるため、クロスプラットフォームではありません。