モバイルアプリやコンピュータ制御に関する雑多なアーカイブ、開発コラム

Saturday 20 March 2010

openCV with iPhone #2

OpenCVをiPhoneでビルドする方法

多くのサイトで参照されているyoshimasa niwaさんのサイトですぐにできました。

その前にwgetやgitがインストールされていなかったので、そちらを先に対処した。
gitがない方はgithubでソースをまず手に入れてください。

ダウンロードしたiphone_opencv_testの中にあるOpenCVTESTプロジェクトをビルドすると、Facedetectのアプリがsimulator,deviceの両方でビルドできました。

OpenCVをソースコードからビルドする方法

iPhoneSDKは.Frameworkのような動的リンクに対応していないため、コンパイルするときは静的なライブラリを作成し、アプリケーションに静的にリンクする必要があるとのこと。

1.OpenCVソースコード(OpenCV-2.0.0.tar.bz2)をSourceForgeからダウンロード

2.デモアプリケーションディレクトリ内で展開
%tar xjvf OpenCV-2.0.0.tar.bz2

3.OpenCVにiPhone SDK 3.xでビルドできるようにパッチを当てる
% cd OpenCV-2.0.0
% patch -p0 < ../cvcalibration.cpp.patch_opencv-2.0.0

4.iPhoneのシミュレータむけにビルド。
 ファイルはopencv_simulatorディレクトにインストールされます。
% cd OpenCV-2.0.0
% mkdir build_simulator
% cd build_simulator
% ../../configure_opencv
% make
% make install

5.iPhoneの実機向けにビルド。
% cd OpenCV-2.0.0
% mkdir build_device
% cd build_device
% ARCH=device ../../configure_opencv
% make
% make install

*OpenCV2.0.0と1.1.0では、そのままではiPhoneSDKでビルドできない問題があるので
cvcalibration.cpp.patchでその問題を解決しているとのこと。

*ビルドサポートスクリプトconfigure_opencvのオプション一覧
# ./configure_opencv --help
Usage: ./configure_opencv [Options | Configure Options] [Enviroment Variables]
OPTIONS
  -h, --help           Show this guide
  -c, --configure-help Show configure help for configure options
ENVIROMENT VARIABLES
  SDK_VERION    Select iPhone SDK Version (2.0, 2.1, 2.2, 2.2.1, 3.0, 3.1, 3.1.2 and more)
                Default = 3.1.2
  GCC_VERSION   Select GCC Version (4.0 for SDK 2.x, 3.x, 4.2 for SDK 3.x and more)
                Default = 4.0 for SDK 2.x, 4.2 for SDK 3.x
  ARCH          Select target architecture (device or simulator)
                Default = simulator
  CONFIGURE     Path to configure script
                Default = ../configure
EXAMPLES
  % ./configure_opencv                             
Making OpenCV with SDK3.1.2 using GCC4.2 for iPhone simulator
  % ./configure_opencv GCC_VERISON=4.0 ARCH=device 
Making OpenCV with SDK3.1.2 using GCC4.0 for iPhone device
  % ./configure_opencv SDK_VERISON=3.0 ARCH=device 
Making OpenCV with SDK3.0 using GCC4.2 for iPhone device
  % ./configure_opencv SDK_VERSION=2.2.1           
Making OpenCV with SDK2.2.1 using GCC4.0 for iPhone simulator

FaceDetectのiPhoneでのスクリーンショット
















EdgeDetectのiPhone上でのスクリーンショット

No comments:

Post a Comment