-
Notifications
You must be signed in to change notification settings - Fork 13
opencv2.framework(for Mac OS X)生成方法
atinfinity edited this page Jul 27, 2016
·
16 revisions
- githubからOpenCV 3.1のソースを入手する.
- OpenCVのソースを展開する.
- ターミナルで以下のコマンドを実行する.※ビルドが完了するとosxディレクトリにopencv2.frameworkが生成される.
cd ~/<my_working_directory>
python opencv-3.1.0/platforms/osx/build_framework.py osx
- Xcodeのプロジェクト作成画面で「Command Line Tool」を選択する
- 「C++」を選択する
- 生成した「opencv2.framework」を選択してドラッグアンドドロップする
- 「Copy items if needed」にチェックを入れる
- Build Phasesを選択し,「+」を押下する
- OpenCL.frameworkを選択する
- (highguiモジュールを使う場合は)Cocoa.frameworkを選択する
- CMake(2.8.8以降)をインストールする必要があります.
- OpenCV 3.0以降からopencv2.framework(for Mac OS X)を生成することができます.
- build_framework.pyを編集する(OpenCVのCMakeオプションを変更する)ことでOpenCVで有効にする機能をカスタマイズできます.
sazamekiさんから以下のコメントを頂きました.
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>@dandelion1124 あ、でも「Embedded Binaries」には自動的には入らないので、バンドルにフレームワークを同梱することが前提の場合には、やはりEmbedded Binariesへのドラッグ&ドロップが必要そうです。
— 風のさざめき (@sazameki) 2016年3月30日
バンドルにフレームワークを同梱する場合はEmbedded Binariesへ追加する必要があるようです.
Embedded Binariesへの追加についてはsazamekiさんの記事,OpenCV 3.1をOS Xで使うを参照ください.
「MacPorts等で既にlibwebpをインストールしている」かつ「framework生成でWITH_WEBP
がON」になっている場合,imgcodecsモジュールを使う際にlibwebpもリンクする必要があります.
framework生成でWITH_WEBP
がONになっているかはプログラム中でcv::getBuildInformation()
を呼び,そのメッセージを確認することでわかります.以下に筆者の環境でのメッセージを抜粋します.このメッセージには「/opt/local/lib/libwebp.dylib」と表示されていることからWITH_WEBP
がONとなっており,MacPortsでインストールしたlibwebpが参照されていることがわかります.
Media I/O: ZLib: build (ver 1.2.8) JPEG: build (ver 90) WEBP: /opt/local/lib/libwebp.dylib (ver encoder: 0x0209)
筆者は以下の環境で動作確認しました.
- OpenCV 3.1.0
- Xcode 7.3
- Mac OS X El Capitan(10.11.4)