OpenCV

トップ > チップス > OpenCV
2012-12-31, opencv mac

MacOSX(Xcode)でOpenCV開発

ソースからCMakeでのビルドなど、色々試したのですが、結局ここに行きつきました。MacPortsが必要です。

それから、最新(4.4以降?)のXcodeにはコマンドラインツールの追加インストールが必要です。メニューから以下のように辿ってダウンロードを実行して下さい。

Xcode - Preferences - Downloads - Command Line Tools

上記の準備が出来たらいよいよOpenCVのインストールです。

$ sudo port self update
$ sudo port install opencv

…これだけ。今までの苦労は一体何だったのでしょうか。MacPortsを食わず嫌いするんじゃなかったと後悔。

次にXcodeでプロジェクトを作成します。

New Project.. - OS X Application - Command Line Tool (タイプは「C++」でも大丈夫だと思いますが、今回「C」を選択しました)

ヘッダファイルの探索先を追加します。

TARGETS - Build Settings

Header Search Paths = /opt/local/include

ライブラリ(フレームワーク?)を追加します。新規に「Frameworks」というグループを作成し、以下のファイルを追加します(これは必要に応じて増やして下さい)。

libopencv_core.2.4.3.dylib
libopencv_highgui.2.4.3.dylib
libopencv_imgproc.2.4.3.dylib

main.cを編集して、OpenCVのコードを書いてみます。以下の例は、デスクトップに置かれたsample.jpgという画像ファイルを読み込んで5秒間表示して終了するプログラムです。適当な画像を準備して下さい。

#include <stdio.h>
#include "opencv2/core/core_c.h"
#include "opencv2/highgui/highgui_c.h"

int main(int argc, const char * argv[])
{
    printf("Hello, OpenCV! The window will disappear after 5sec.\n");

    char *file = getenv("HOME");
    strcat(file, "/Desktop/sample.jpg");

    IplImage *image = cvLoadImage(file, 1);
    if(!image){
        printf("image not found!\n");
        return 1;
    }

    cvNamedWindow("My Picture",1);
    cvShowImage("My Picture",image);

    cvWaitKey(5000);
    cvDestroyAllWindows();
    return 0;
}

C++に不慣れなものでCスタイルで記述していますが、ウェブで検索すると、C++で書かれたコードの方が(特に新しいものに)多いような気がします。C++も避けては通れないのでしょうか…。

参考URL

この記事は役に立ちましたか?