それらのいくつかが見られました。 opencvdotnet 、 SharperCV 、 EmguCV 、 One on Code Project .
誰でもこれらの経験がありますか?コードプロジェクトのコードを少し試してみましたが、複雑なことをしようとするとすぐに、キャッチできない例外(つまり、Msgboxの例外)が発生しました。クロスプラットフォーム(Monoをサポート)が最適です。
OpenCVSharp を使用します。Googleコードのウェブサイトは日本語ですが、最新の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)
EmguCVを使用して、C#でOpenCvを簡単に開始できるようにNuGetパッケージを作成しました。
見てみな! Visual Studioで検索し、myEmguCV.NetNuGetパッケージを追加します。
最高のラッパーはopencvsharp http://code.google.com/p/opencvsharp/ であると思います
この質問には長い間答えられてきましたが、非常に優れたラッパー here があることを付け加えたいと思います。これは、 code project で試したopenCVラッパーの新しいバージョンです。私は数日間試してみましたが、すべてが完璧に機能します。また、数分で機能しました。
私はモノとの互換性については知りませんが、Visual Studio 2010では、それは魅力のように機能し、膨大な時間とお金を節約しました(私のプロジェクトは商用であり、ライブラリのほとんどは商用を許可しないライセンス付きのオープンソースですコードを公開しない限り利用率)
SharperCVは私たちが選んだツールであり、 roboticsプロジェクト のために私たちを失望させませんでした。現在は放棄されているとマークされていますが、コードは非常に良好で、必要に応じて微調整するだけでカスタマイズできます。 msgboxesはなく、実際には非常に健全な例外処理です。
ただし、相互運用性レイヤーのため、クロスプラットフォームではありません。