OpenCVをビルドしてプロジェクトに組み込む

少し空いてしまったが、少しずつOpenCVも勉強していこうと思う。
それには実際にサンプルコードを動かしていくのが一番なので、まずはOpenCVを使ったコードが動くように、それもiOS環境上で動くようにしなくてはならない。

導入はHomeBrewかMacPortsを導入してOpenCVをビルドする所からなのだが、私にはMake関係の知識がまるでないので、xcodebuild(とCMake)を使う方法でいくことにする。

以下の作業に行うにこちらのサイトの方法とコードを参考にさせて頂いた。
Computer vision with iOS Part 1: Building an OpenCV framework — Aptogo
[Xcode4,Objective-C++] OpenCV2.4.1をiOSで使う | 秋山ブログ


1. Xcode Command Line Toolsをインストールする

2.CMakeをインストールする
CMake - Cross Platform Make

3.OpenCVのソースコードをダウンロードする
OpenCV - Browse Files at SourceForge.net
アーカイブの展開はどこでも良いが対象プロジェクトの直下に"opencv"という名前のディレクトリにしてコピーしておく

4. ビルド、インストール
2.でCMakeをインストールしたのはここで要求されるからだ。

$ ../opencv/ios/configure-device_xcode.sh
$ xcodebuild -sdk iphoneos -configuration Release -target ALL_BUILD
$ xcodebuild -sdk iphoneos -configuration Release -target install install

対象のディレクトリ直下に"OpenCV_iPhoneOS"が生成できていればOK

5. プロジェクトに組み込む
opencvディレクトリ以下にある"OpenCV.xcodeprj"を(フォルダリファレンス)でプロジェクトに追加する

そして、Header Searchパスに"./OpenCV_iPhoneOS/include/"を追加する。

更にビルドした結果できたライブラリィを"Link Binary With Library"から追加する

これでサンプルコードのコンパイルができるはずなのだが、私の環境ではエラーが出る。

BuildSettingsを見ると使わないはずの"i386 architecture"がOnになっており、対象のプラットホームもMac OS Xになっていたので、これをiOS用に変更して再ビルドした。

これで漸くビルドが通り、サンプルコードも動いた。

オープンソースはとてもとても有り難いんだが馴染みの無いツールを使ったりインストール方法が複数あったりと面倒なことが多い(一度経験してしまえばどうってことはないんだが)。

このようなOSSビルドネタの場合インストールと各種設定だけでブログのエントリが埋まってしまうことが多いのは仕方が無いことだよね。