OpenCvSharpExternのバイナリを作る

Linux等のWindows以外の環境でOpenCvSharpのMachineLearning(機械学習)やBlob(ラベリング)を利用するためには、ネイティブで書かれたラッパー「OpenCvSharpExtern」を自力でコンパイルしなければなりません。この度、CMakeによって多少楽にできるようにしました。

(まだリリースはしていません。リリースはOpenCV 2.0が出た直後を予定しています。)

CMakeとは

cross platformなmakeの略だそうで、様々なプラットフォームにおけるビルドファイルを作ってくれるツールです。UnixならMakefile、WindowsならVisual Studioのプロジェクト、といったように、それぞれのプラットフォームに合ったビルドファイルを出力できます。
実際のmakeまでしてくれるツールではありません。そこはCMakeが終わった後、別途自分でやります。

CMakeのインストール

以下、OpenCvSharpExternのバイナリを作る手順をご説明します。Windows版のバイナリは標準で用意してあるので別にやる必要は無いはずなので、以下ではUbuntu 9.04という前提で話を進めます。

インストールはaptで一発です。

sudo apt-get update
sudo apt-get install cmake

Makefileの生成

OpenCvSharpのソースをリポジトリから取得して、そのディレクトリに入ります。

svn checkout http://opencvsharp.googlecode.com/svn/trunk/v2 OpenCvSharp

cd OpenCvSharp

cmakeを実行します。

cmake .

すると、MakefileとかCMakeFilesといったファイル・ディレクトリが色々新たに生成されるはずです。
もし失敗した場合は、OpenCVのインクルードファイルやライブラリファイルのパスの設定がこちらの想定と違う可能性があります。インクルードパスは"/usr/include"若しくは"/usr/local/include"、ライブラリパスは"/usr/lib"若しくは"/usr/local/lib"を探索する設定になっています。違う場合はcmakeの際に多分設定し直せると思います。

make

cmakeがうまくいけば、後はmakeするだけ。

make

成功すると、OpenCvSharpExtern/libOpenCvSharpExtern.so が生成されているはずです。このファイルをOpenCvSharp.dllと同じ場所に置くことで、機械学習やラベリングが使えるようになります。

Cmake

Cmake