OpenCVをC#で使う(OpenCvSharpインストール編) [OpenCV]
OpenCVの対応言語はC/C++、Java、Pythonだけであり、.Netには対応してない。しかしWeb上には.NET(C#)で使うためのラッパーがいくつか存在する。Webで調べたところでは、Emgu CV、OpenCVDotNet、OpenCvSharpの3つを見つけた。
今回、OpenCvSharpを利用することにした。理由は2つある。1つ目の理由は、Emgu CVとOpenCVDotNetの2つはGPLライセンスであること、2つ目の理由はOpenCvSharpの開発者が日本人でありドキュメントが揃っている事である。
1.インストール
以下のサイトから、それぞれの最新版である本体、サンプルおよびマニュアルをダウンロードする。
- OpenCvSharp-2.4.5-x64-20131009.zip
- Sample-2.4.5-20130711.zip
- Documentation-Jp-2.1-20100508.chm / Documentation-Jp-2.1-20100508.zip
https://code.google.com/p/opencvsharp/downloads/list
また詳細は以下の作者のページを参考とします。http://schima.hatenablog.com/entries/2009/06/16#1245081217
インストール作業は特に内容です。ただしVisual C++ 再領布可能パッケージのインストールが必要です。以下の中から自分の環境に合わせてインストールします。
x86
Visual C++ 2010 Redistributable Package (x86)
Visual C++ 2008 SP1 Redistributable Package (x86)
Visual C++ 2005 SP1 Redistributable Package (x86)
x64
Visual C++ 2010 Redistributable Package (x64)
Visual C++ 2008 SP1 Redistributable Package (x64)
Visual C++ 2005 SP1 Redistributable Package (x64)
2.使い方
① Visual Studioのプロジェクトを作成する。
ファイルをすべてプロジェクトにいれる。ファイルを選択しソリューションエクスプローラにドラッグ&ドロップします。
② OpenCvSharpExtension.dllのコピー設定
ソリューションエクスプローラから””を選択し、プロパティから「出力ディレクトリにコピーする」を「新しい場合はコピーする」に編集します。
③ 参照設定
「ソリューションエクスプローラ」の「参照設定」を右クリックし「参照の追加」を選択する。
「参照の追加」のダイアログからすべてのOpenCvSharp関連のDLLを参照に追加します。
ただし、OpenCvSharpExtern.dllのみ参照設定しない。(できない)
3.動作確認
以下のコードを記述し実行する。
以下のエラーが出た場合
① OpenCVのDLLもソリューションエクスプローラに加える。
OpenCVのバージョンを合わせる必要がある。今回の場合、OpenCvSharpのバージョンが2.4.5 64bit版のためOpenCVも下記のサイトから2.4.5 64bit版を入手しDLLをソリューションエクスプローラに加える。
http://opencv.org/downloads.html
このアプリケーションの場合、3つのDLLをソリューションエクスプローラにに加え、すべての「出力ディレクトリにコピー」プロパティを「新しい場合はコピーする」に設定する。
注意点として、ビルドのプラットフォーム設定を「x64」と整合を取る必要があります。
OpenCV、OpenCvSharp、Visual C++ Redistributable Package のバージョンとプラットフォーム、さらにC#のビルドプラットフォームが同じになると正常にプログラムが起動します。
以下のウィンドウが出れば成功です。
以上で「OpenCvSharpインストール編」を終了します。
参考サイト
- http://imagingsolution.net/program/csharp/useopencvbydotnet/
- https://code.google.com/p/opencvsharp/downloads/list
- http://schima.hatenablog.com/entries/2009/06/16#1245081217