OpenCVSharpを導入する-1 "環境構築"
About
OpenCVをC#から使う方法はいくつかあって、恐らくラッパーライブラリ「OpenCVSharp」を利用することが最もメジャーな方法です。開発者の方に感謝しつつOpenCVSharpを導入してみます。そんなに細々書いていませんが、導入して利用しよう、という人には扱える程度の内容のハズです。
Download & Install
OpenCVSharp導入に関しては、実際の所は開発者Schima氏のブログに殆ど掲載されています。まずはここを参照するのが良いでしょう。
- Schimaの日記
Visual C++ 再頒布可能パッケージ のインストール
OpenCVの動作にはVC++のRedistributablePackageが必要です。利用するプラットフォームや依存機能によってインストールするべきパッケージが変わりますが、ひとまずは全部インストールするのが無難だと思います。(配布などする場合はユーザに全てインストールすることを求められませんから、きっちり調べる必要ありますけど)
- x86(32bit)
- x64
OpenCVSharp
OpenCVSharpをダウンロードします。上の方のタブに「Downloads」の項目があります。2012年09月現在で最新のバージョンは2.4でした。OpenCVSharpのバージョンに合わせてOpenCV(のバージョンを選んで)をダウンロードするので注意してください。
ここではとりあえずデスクトップに展開してしまいました。
OpenCV
OpenCVは公式からダウンロードするのが確実だと思います。BSDライセンスなので余所で配布されている可能性もありますし、他のアプリケーションに含まれる場合もあるでしょうけども。
公式の「Downloads」から「release version (x.x)」のリンクをたどります。2012年09月現在ではOpenCVSharpの対応バージョンが2.4だったので、OpenCVのバージョンは2.4をダウンロードしました。対応するプラットフォームとバージョンを選択してダウンロードするようにして下さい。
ここではとりあえずデスクトップに展開してしまいました。
TBB
OpenCVの最新のバージョン(2012年9月現在)では、Intel社のTBB(Threading Building Blocks for Open Source)が利用されています。TBBは端的に言うと並列処理を行うためのライブラリなようです。詳しくは別所で調査されたい。OpenCVに実装される関数/機能のいくつかで、内部的にTBBが利用されているようです。
OpenCVSharpを利用する場合、TBBが使われないOpenCVの関数/機能のみを利用する場合にも、TBBが必要になります。導入されていない場合「BadImageException」や「Invoke」といったエラーを引き起こす可能性があります。※その場合は"「oepncvCore_xx.dll」が読み込めません"となるハズです。
メニューの「Downloads」から「Stable Release」へ移動し、適切なバージョンをダウンロードします。その適切なバージョンですが、どれか分かりません。OpenCV公式でアナウンスされていると思います(が誰か調べてください)。2012年09月現在では最新のバージョンをダウンロードして動作を確認しています。もしTBBが原因で動作していないと思われる不具合が出た場合は、過去のバージョンをダウンロードしてみるのが良いかもしれません。リリースされた日付から凡そ察しはつきますし。
ここではとりあえずデスクトップに展開してしまいました。