OpenCV 3.2でWITH_TBBをONにする - atinfinity/lab GitHub Wiki
OpenCV 3.1まではWindow環境でCMakeを使ってOpenCVをビルドする際に
- 
WITH_TBBをONにする
- 変数TBB_INCLUDE_DIRにTBBのインクルードパスを設定する
ことでTBB実装が有効になっていました・・・が,Updated TBB search #7757の変更の影響でOpenCV 3.2ではこの方法でTBBを検出できなくなってしまいました.
ここではWindow環境かつOpenCV 3.2でWITH_TBBをONにする方法を紹介します.
リリースページからWindows向けのライブラリを入手します.
以降はtbb2017_20170226oss_win.zipをダウンロードしたものとして説明を行います.
zipファイルを展開して適当な場所に置きます.
以降はC:\dev以下に置いたものとして説明を行います.
OpenCV 3.2から以下の変数をもとにシステム内からTBBを検出するようになりました.
| 変数 | 意味 | 
|---|---|
| TBB_ENV_INCLUDE | TBBのインクルードパス | 
| TBB_ENV_LIB | TBBのライブラリ(release) | 
| TBB_ENV_LIB_DEBUG | TBBのライブラリ(debug) | 
CMakeでの変数設定例は以下の通りです.
| 変数 | 設定例 | 
|---|---|
| TBB_ENV_INCLUDE | C:/dev/tbb2017_20170226oss/include | 
| TBB_ENV_LIB | C:/dev/tbb2017_20170226oss/lib/intel64/vc14/tbb.lib | 
| TBB_ENV_LIB_DEBUG | C:/dev/tbb2017_20170226oss/lib/intel64/vc14/tbb_debug.lib | 
この指定を行い,WITH_TBBをONにしてCMakeを実行し,OpenCVをビルドします.
※ここではVS2015用(vc14)かつ64bit(intel64)のライブラリを参照しています.必要に応じて変更ください.
また,バッチファイルで実行する場合はこちらをご参考ください.
Updated TBB search #7757の変更内容を見るとわかりますが,以前はプラットフォームやTBBのバージョン毎にチェック処理が入っており複雑になっていました.
このPRは専用の変数を導入することでTBB検出処理の共通化(プラットフォーム,TBBバージョン)を図りメンテナンス作業を軽減することを目的としているものと推測されます.
ここではWindow環境かつOpenCV 3.2でWITH_TBBをONにする方法を紹介しました.
筆者は以下の環境で動作確認しました.
- OpenCV 3.2.0
- Windows 10 Pro(64bit)
- Visual Studio 2015 Professional