Xcode4でつくるOpenCV環境

このエントリーを含むはてなブックマークはてなブックマーク - Xcode4でつくるOpenCV環境


 
ここでは、Xcode4を用いてOpenCVのプログラムを組むために必要な環境の整え方を紹介します。用いるXcodeはXcode4.3、OpenCVのバージョンは2.3です。また、動作はMacOSX 10.7 Lionで確認しています。

 Xcodeのインストール

まずはじめに、Xcode4.3をApp Storeからダウンロードします。以前はiOS developper centerからダウンロードしていましたが、最近はApp Storeから入手できるようです。
 

 gccのインストール

コマンドライン用のgccがインストールされていない場合はXcodeのPreferenceからDownloadsタブへとすすみ、Command Line Toolsをインストールしておいて下さい。コマンドラインで使えるgccがない場合、homebrewでOpenCVをインストールしようとしてもエラーで停止してしまいます。
 

  

 homebrewのインストール

つぎに、OpenCVをインストールするため、パッケージ管理システムのhomebrewをインストールします。まずは本家からhomebrewをダウンロードします。
 

/usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"

 

 OpenCVのインストール

homebrewがインストールできたら、つぎは以下のコマンドでOpenCVをインストールします。2012年5月現在では問題なくインストールできます。パッケージのインストールが完了すると、/usr/local/Cellar/opencv以下にOpenCVの実行に必要なインクルードファイルとライブラリファイルがインストールされます。
 

sudo /usr/local/bin/brew install opencv 

 

 Xcodeの設定

ここまでで、OpenCVはインストールできたので、次はXcodeからOpenCVを使う設定を行います。新規プロジェクトをCommand Line Toolとして作成します。プロジェクトが作成できたら、先ほどインストールしたOpenCVのインクルードファイルとライブラリファイルの場所をXcodeに教えてやる必要があります。


 
まずは、各ファイルの場所を指定します。Xcodeの左側に配置されているProject navigator上でプロジェクトファイルを選択し、TARGETS、Build Settingタブへとすすみ、Header Search PathsとLibrary Search Pathsの項目にどちらも/usr/local/Cellar/opencvと入力します。この際、入力欄の左側にあるチェックボックスにチェックを入れてリカーシブルにファイルが検索されるようにします。
 

 
最後にライブラリをリンクします。Build Settingsの横にあるBuild Phasesタブをクリックし、その中にあるLink Binary With Libraryesの行にOpenCVのライブラリをD&Dします。今回インストールしたOpenCVのライブラリは/usr/local/Cellar/opencv/2.3.1a/libにあるため、このフォルダに移動し(Finderで移動->フォルダへ移動を選択)必要なライブラリをXcodeにドラックして下さい。今回は以下の3ファイルをリンクしました。
 
・libopencv_core.dylib
・libopencv_highgui.dylib
・libopencv_imgproc.dylib
 

 
 
 

 OpenCV実験

実際にOpenCVがXcodeから使えるかどうか以下のサンプルプログラムを使って実験してみてください。うまくOpenCVがインストールできていれば、今流行の金環日食が見れることでしょう(笑)
 

#include <cv.h>
#include <highgui.h>

int main ()
{
    IplImage *img = cvCreateImage(cvSize(256, 256), IPL_DEPTH_8U, 3);
    cvZero(img);
    cvCircle(img, cvPoint(128, 128), 128, cvScalar(170,255,255), 3);
    
    cvNamedWindow("test");
    cvShowImage("test", img);
    
    cvWaitKey(0);
    return 0;
}

 
 

Leave a Reply

You must be logged in to post a comment.