写真やビデオのストリームを分析し、画像に関する情報を検索しているときに、私は
思わず OpenCVオープンライブラリに
遭遇しました 。これは
Habréで何度も言及され
ました 。 しかし、問題はOpenCVがC ++に実装されており、私はC#でプログラムしていることです。
そのため、OpenCVを使用する必要がある複雑な状況でC ++を学習しないように、C#で記述されたこのライブラリのラッパーを探すことにしました。
1.戦闘中の偵察
Googleに乗り込み、文字通り最初の検索結果から有用なリンクを見つけました。
C#で最も一般的なOpenCVラッパーは
EmguCvです。
あまり知られていないのは
OpenCvDotNetです。
そして、最も目立たないのは
OpenCvSharpです。
// お気に入りのブラウザのリクエスト数の推定から得られた有病率に関する太字の文。2.比較分析
実際、同じOpenCVライブラリのラッパーと比較できるものは何ですか?
正直に言うと、たくさん。
例:
- インストールプロセス
- ラップされた機能の割合
- ユーザビリティ文書
- サンプルの入手可能性
- 等
すべてについて簡単に、しかし順番に。
A)インストールプロセス:
EmguCV、OpenCVDotNet:かなり合理的なインストーラー。 すべてがうまくいくようで、何かがどこかに置かれていますが、MSVSで例を開くとすぐに、ライブラリへのリンクが機能しない、必要なdllファイルが見つからないなどの異常な量のエラーと警告が発生します
手が正しく成長したら
、理解したいので、参照を固定し、必要なdllを目的のフォルダーにコピーできます。
しかし、インストーラーがある場合、開発者のためにそれをしないのはなぜですか?インストールの目的が環境に慣れることである場合、この慣れには完全な没入が必要であることがわかります。
OpenCvSharp:インストーラーなし、バイナリーのダウンロード、ソリューションフォルダーへの配置、実行、すべてが機能します!
それは素晴らしいことではありませんか? ! さらに、一般的には、ラッパーのWebサイトですべてが開始される慣れるために、すでにMSVCプロジェクトにアップロードされているサンプルの
アーカイブがあり 、Build Solutionボタンをクリックしてすべてを開始します。
この例のソリューションには、すでにライブラリへのすべての必要なリンク、すべての画像へのリンクがあり、一般にそのようなプロジェクトは満足感を呼び起こします。
B)「ラップされた」関数の割合
お名前 | Emgucv | Opencvsharp | Opencvdotnet |
クロスプラットフォーム(モノ) | はい | いや | いや |
Opencv 2.0 | はい | はい | いや |
機械学習 | はい | はい | いや |
例外処理 | はい | はい | いや |
デバッガービジュアライザー | はい | はい | はい |
積極的に維持 | はい | はい | いや |
//テーブルは(ほぼ)EmguCV Webサイトから取得されますC)ユーザビリティ文書
EmguCV:このサイトには、MSDNのプロトタイプで作成されたすべての機能の完全な説明が含まれています。 たくさんのコメント。
+ 1つの例を見る必要がある場合、すべてのドキュメントをダウンロードする必要はありません。
-インターネットがない場合、オンラインドキュメントは役に立ちません。
OpenCVSharp:このラッパーのWebサイトには、.chmと.htmlの2つの形式のドキュメントをダウンロードするためのリンクがあります。
+ダウンロードして、常に使用します。
-たとえば自宅から職場にコンピューターを変更するときは、ドキュメントを再度ダウンロードするか、携帯する必要があります。
OpenCVDotNet:単にドキュメントはありません。
3.まとめ
明らかな理由から、OpenCVDotNetは道の脇に残ります。 同時に、EmguCVとOpenCvSharpには長所と短所の両方があります。 しかし、彼らは両方とも彼らの第三の競争相手と根本的に異なっています。
選択は常に開発者次第です。
私は自分でOpenCVSharpを選択し、満足しています:)
追伸これはHabréに関する私の最初の記事です。 デザインに対する建設的な批判の贈り物を喜んで受け入れます。