私はそれらのいくつかがあるのを見てきました。 opencvdotnet、SharperCV、EmguCV、コード プロジェクトの 1 つ。
誰でもこれらの経験がありますか? Code Project のものを少しいじってみましたが、何か複雑なことをしようとするとすぐに、キャッチできない厄介な例外 (Msgbox 例外など) が発生しました。クロス プラットフォーム (Mono をサポート) が最適です。
私はそれらのいくつかがあるのを見てきました。 opencvdotnet、SharperCV、EmguCV、コード プロジェクトの 1 つ。
誰でもこれらの経験がありますか? Code Project のものを少しいじってみましたが、何か複雑なことをしようとするとすぐに、キャッチできない厄介な例外 (Msgbox 例外など) が発生しました。クロス プラットフォーム (Mono をサポート) が最適です。
私はopencvdotnetから始めましたが、実際には積極的に開発されていません。さらに、私が必要としていた機能 (顔検出) のサポートはまだらでした。私は現在EmguCVを使用しています。これは API の大部分をラップしており、その背後にいる人は提案や要求に非常に敏感です。コードは見て楽しいもので、Mono で動作することが知られています。
ブログに簡単な入門ガイドを書きました。
私たちはOpenCVSharpを使用しています。グーグルコードのウェブサイトは日本語ですが、最新の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" サンプルかもしれません。
EmguCV を使用して、C# で OpenCv を簡単に開始できるように、NuGet パッケージを作成しました。
見てみな!Visual Studio でmyEmguCV.Net NuGet パッケージを検索して追加します。
この質問には長い間回答があったことは知っていますが、ここに非常に優れたラッパーがあることを付け加えたいと思います。これは、コード プロジェクトで試した新しいバージョンの openCV ラッパーです。数日間試してみましたが、すべてが完璧に機能します。また、数分で機能しました。
mono との互換性についてはわかりませんが、Visual Studio 2010 では魅力的に機能し、時間とお金を大幅に節約できました (私のプロジェクトは商用であり、ほとんどのライブラリはライセンスが許可されていないオープン ソースです。コードを公開しない限り利用)
SharperCV は私たちが選んだツールであり、私たちのロボティクス プロジェクトで失望することはありませんでした。現在は放棄されているとマークされていますが、コードは非常に良好な状態であり、必要に応じてカスタマイズするために微調整するだけで済みます. メッセージボックスはなく、実際には非常にまともな例外処理です。
ただし、相互運用レイヤーのため、クロスプラットフォームではありません。