ずいぶんと間が空いてしまいましたが、iPhone上でOpenCVを動作させる方法をご紹介します。
その前に、最近になって新しいOpenCVの本が出版されていました。
この本を本屋さんで見つけて、そういえば最近またOpenCVから離れていたなぁという事を思い出しました。
カットシステム
発売日:2009-05
発送時期:在庫あり。
ランキング:15829
内容としてはOpenCVで出来る事とやり方の紹介という感じです。
応用という部分まではいっていない印象でした。
最新のOpenCV 1.1.0 preに対応した書籍の出版という事だと思いますので、以前に出版されていた下の本でも十分だと思います。
毎日コミュニケーションズ
発売日:2007-09-22
ランキング:108253
おすすめ度:


とっかかりとしてはよい本

OpenCVを日本語でまとまって解説した初めての本

肩すかし
以前に出版されたこの本を持っている人は一度本屋さんで立ち読みをしてから購入を考えた方がいいと思います。
ではでは本題へ。
以前はFrameworkを作成してプロジェクトに登録してOpenCVを使えるようにするという事を紹介しました。
しかし公式で認められていないFrameworkは実機では使えないという事がありました。
そこでどうしたら良いかという事になります。
OpenCVにはヘッダーなどが公開されているオープンソースとなっていますので、それをそのままプロジェクトに登録してやります。
opencv-1.1.0の中にあるcvとcxcoreの中のソースファイルをプロジェクトに追加します。

このフォルダの中にincludeとsrcというフォルダがあるのでその中のファイルを追加します。
Makefile.amとMakefile.inは必要ありません。
というか追加しないでください。
例としてこんな感じで追加します。

あとはFrameworkの時に
#import <OpenCV/OpenCV.h>
と書いていた部分を
#import "cv.h"
#import "cxcore.h"
と書き換えます。
これでビルドターゲットをiPhone OS 2.2.1の場合であれば実機上で動作させる事が可能になります。
iPhone OS 3.0だとリンクのところで「library not found for -lstdc++-static」という謎のエラーをgcc4.2が吐いてしまいます。
ライブラリは使っていないはずなのにライブラリが見つかりませんというエラーが何故出力されるのか謎です。
iPhone OS 2.2.1まではgcc4.0なので、gcc4.2になって何か他にも変更しないといけない部分があるのか今のところは分かりません。