読者です 読者をやめる 読者になる 読者になる

hellkite 日記と雑記とメモ。

Shiki Kazamaの駄文と音楽と、時々技術な感じ

MacにOpenCVを入れて、openFrameworksから使ってみる


スポンサーリンク


今考えている開発対象はiOSがメインですが、検証はMacでできた方がいいかな?というわけで、Mac版でのopenFrameworksでもOpenCVを入れてみました。

OpenCVのインストール

自前でソースからビルドしてみようと思ったのですが、homebrewでインストールしてみます。あまり時間がなかったので。openFrameworksが32bitなのでビルド設定として、32bitを追加しました。

$ brew tap homebrew/science
$ brew install opencv3 --32-bit --with-ffmpeg --with-gstreamer --with-jasper --with-openni --with-python3

インストールに成功すると、/usr/local/Cellar/opencv3/3.0.0にライブラリが入ってきます。こいつをopenFrameworksから使えれば、環境構築としては、完了です。

openFrameworksでOpenCV

openFrameworksから使うといっても、通常のXcodeプロジェクトと同じです。C++万歳。
通常通り、openFrameworksのProjectGeneratorを使ってプロジェクトを作成します。次に、Search Pathsを編集。Header Search Pathsに、/usr/local/Cellar/opencv3を追加、recursiveに変更しておきます。
次にライブラリファイルを追加します。Build Phasesを開き、LinkBinary With Librariesを表示、FinderでOpenCVのdylibをドラッグアンドドロップで追加。
Finderでusr/を開きたいときは、ターミナルから以下のコマンドで開けます。

$ open /usr

で、ビルドすればおしまい。。のはずが...

こんなエラーが出た。

file was built for x86_64 which is not the architecture being linked (i386)

えー。と思って、fileコマンドで確認してみた。

$ file libopencv_video.3.0.0.dylib 
libopencv_video.3.0.0.dylib: Mach-O 64-bit dynamically linked shared library x86_64

あれ?64bit...
INSTALL_RECEIPT.jsonを確認しても、ちゃんと32bitの指定になっているみたいなんだけど。何度やっても同じ、ついでにOpenCV 2.4.9を--32-bitを指定してビルドしてみたけど結果は変わらず。
iOSのときと同じようにソースからビルドしないとダメ?hellkite.hatenablog.com

まぁ、今回に限らずopenFrameworksが64bitに対応していないっぽいのは結構きつい。早くopenFrameworksが64bit化してくれないかしら。