Mac OSX Snow LeopardにOpenCVを入れてXCodeから使えるようにする手順

結構大変だったのでメモ。
例によって私の環境ではこうすればうまくいきました、というメモです。

私の環境

Mac OS X SnowLeopard 10.6.4

OpenCVの導入

OpenCVをダウンロードして展開

実は最初Macportsでいれたんだけど、当然ながら/opt下にインストールされてしまうので、各種サイトの情報とパスが違って面倒。Macportsだと失敗したという情報もあるし。
なので普通にダウンロード。
Browse Open Computer Vision Library Files on SourceForge.netからOpenCV-2.0.0.tar.bz2をダウンロードして展開。
場所はどこでもいいと思うが、以下では説明の都合上~/Downloadsとする

CMakeをインストール

CMake - Cross Platform Make
普通にインストール。最後にパスを通すか聞かれたら通す。(デフォルトは通さないようになってるので注意!)

必要なライブラリ類をMacportsで落とす

Macportsない人はThe MacPorts Project -- Download & Installationからインストールして、

sudo port install pkgconfig
sudo port install jpeg libpng tiff
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
CMakeする

さきほど展開して出来たフォルダに移動する。
buildというフォルダを作って、cmakeする

cd ~/Downloads
mkdir opencv/build
cd opencv/build
cmake ..
ccmake .

途中で設定をどうするか聞かれるので、
1.まず「t」を押してアドバンストモードにする
2.CMAKE_CXX_COMPILERとCMAKE_C_COMPILER以下のように書き換える。エンターキーで編集できる

CMAKE_CXX_COMPILER=”/usr/bin/g++-4.0″
CMAKE_C_COMPILER=”/usr/bin/gcc-4.0″

3.「c」を押してconfigureし(これは少し時間がかかる)
4.再び「c」を押してconfigureし(これはすぐ終わる)
5.「g」を押すとcmakeされる

インストール
make -j8
sudo make install

これでインストール完了。

サンプルで遊んでみよう!!

次に早速サンプルを使ってみよう!!

サンプルのコンパイル

~/Downloads/samples/cフォルダにソースがあるので、これをコンパイルする。
build_all.shを実行すればいいようになってるのだけど、これのコンパイラの記述が古いので以下のように修正する
「-4.0」を追加するだけ。

gcc-4.0 -ggdb `pkg-config –cflags opencv` -o `basename $i .c` $i `pkg-config –libs opencv`;
g++-4.0 -ggdb `pkg-config –cflags opencv` -o `basename $i .cpp` $i `pkg-config –libs opencv`;

修正したら、

sh build_all.sh

これでコンパイルが通るので、サンプルが実行できるようになる。

サンプルで遊ぶ
cd ~/Downloads/opencv/samples/c
facedetect
lkdemo

サンプルはfacedetectとlkdemoがおすすめ!

XCodeから使えるようにする

テキストエディタだけでコードを打ってターミナルでコンパイルするのは大変なので、XCodeから使えるようにする。

XCodeのインストール

ぐぐってください。

Xcode使う
  1. [ファイル]→[新規プロジェクト]→[Command Line Tool]で新たなプロジェクトを作成する。
  2. [プロジェクト]→[プロジェクト設定]から[ビルド]タブを選択
  3. アーキテクチャ」を「32bit Universal」に
  4. 「有効なアーキテクチャ」をi386x86_64のみを残して、ppcとつくもの(4つくらいあるはず)を削除する
  5. 「ヘッダ検索パス」を「/usr/local/include/opencv」に
  6. プロジェクト設定の画面を閉じて
  7. 「Source」フォルダで右クリック→[追加]→[既存のファイル]で、以下のファイルを追加する

/usr/local/lib/libcv.dylib
/usr/local/lib/libcxaux.dylib
/usr/local/lib/libcxcore.dylib
/usr/local/lib/libhighgui.dylib

なお「追加」→「既存のファイル」でファイルを追加するとき、usrフォルダが表示できないので、ターミナルから

open /usr/local/lib

としてFinderにファイルを表示させて、該当ファイルをドラックアンドドロップすれば簡単に指定できる。

テスト用プログラムを実行

opencv.jp - OpenCV: ビデオ入出力(Video I/O)サンプルコード -をmain.cppにコピペしてビルド&実行!
うまくいったらiSightの画像が出るはず!!

参考

この手順は下のサイトの手順をまぜこぜにしたものです。ありがとうございます。
【Mac】OpenCV+Snow Leopard | 宵のうちから
Snow LeopardにOpenCVをインストール « 横江宗太
OSX で OpenCV を試してみる - minorio のプログラミング・メモ