![]() |
OpenCV 4.13.0
Open Source Computer Vision
|
次のチュートリアル: OpenCV構成オプションリファレンス
OpenCVをマシンにインストールする方法は2通りある。プラットフォーム向けのビルド済みバージョンをダウンロードするか、ソースからコンパイルするかである。
多くの場合、用途に合ったOpenCVのビルド済みバージョンを見つけられる。
Android、iOS、Windows向けに、デフォルトの引数と最新のコンパイラでビルドされたパッケージが各リリースごとに公開されている。これらには opencv_contrib モジュールは含まれていない。
他の組織や個人もそれぞれ独自のOpenCVバイナリ配布物を保守している。例えば次のものがある:
既存のバイナリパッケージが用途に適さない場合がある。その際は自分でカスタムバージョンのOpenCVをビルドする必要がある。このセクションではビルド処理の概要を説明する。実際のビルド手順については各プラットフォーム向けのチュートリアルを参照すること。
OpenCVは設定とビルドに CMake ビルド管理システムを使用する。そのためこのセクションでは主にCMakeを使ったソフトウェアのビルドの一般的な流れを説明する。
C++コンパイラとビルドツールをインストールする。*NIXプラットフォームでは通常GCC/G++またはClangコンパイラと、MakeまたはNinjaビルドツールである。WindowsではVisual Studio IDEまたはMinGW-w64コンパイラが利用できる。Android向けのネイティブツールチェーンはAndroid NDKで提供される。OSXおよびiOSプラットフォーム向けのソフトウェアのビルドにはXCode IDEを使用する。
公式サイトまたはその他のソースからCMakeをインストールする。
その他のサードパーティ依存物を入手する: 動画のデコードやGUI要素の表示といった追加機能を提供するライブラリ、特定アルゴリズムの最適化実装を提供するライブラリ、ドキュメント生成などに使うツールなどである。利用可能なオプションと対応する依存物については OpenCV設定オプションリファレンス を確認すること。
一般的なソフトウェアプロジェクトは1つまたは複数のコードリポジトリで構成される。OpenCVにはコードを含む2つのリポジトリがある: opencv は安定して継続的にサポートされるアルゴリズムを含むメインリポジトリ、opencv_contrib は実験的なアルゴリズムや非フリー(特許対象)のアルゴリズムを含む。さらにテストデータを含むリポジトリ opencv_extra がある。
リポジトリのスナップショットをアーカイブの形でダウンロードするか、全履歴を含めてリポジトリをクローンできる。
スナップショットアーカイブをダウンロードするには:
リポジトリをクローンするには、コンソールで次のコマンドを実行する (git が インストールされている必要がある):
このステップでは、CMakeが必要なツールと依存物がすべて利用可能でライブラリと互換性があることを検証し、選択したビルドシステム向けの中間ファイルを生成する。これはMakefile、IDEプロジェクトやソリューションなどになりうる。通常、このステップは新しく作成したビルドディレクトリ内で実行する:
cmake-gui アプリケーションを使うと、グラフィカルユーザーインターフェイスで利用可能なオプションを確認・変更できる。詳細は https://cmake.org/runningcmake/ を参照すること。ビルド処理では、ソースファイルがオブジェクトファイルにコンパイルされ、それらがリンクまたは結合されてライブラリやアプリケーションが生成される。このステップは汎用的なコマンドで実行できる:
... あるいは、背後のビルドシステムを直接呼び出すこともできる:
インストール手順では、ビルド結果やビルドディレクトリ内のその他のファイルがインストール先にコピーされる。デフォルトのインストール先はUNIXでは /usr/local、Windowsでは C:/Program Files である。この場所は設定ステップで CMAKE_INSTALL_PREFIX オプションを設定することで変更できる。インストールを実行するには次のコマンドを実行する:
sudo cmake ...)。コードの一部を動的に読み込まれるプラグインとして切り出すことで、OpenCVの一部の依存物を切り離して省略可能にできる。これにより、より少ない依存物のシステムでも動作し、不足するライブラリをインストールするだけで機能を拡張できる適応的なバイナリ配布物を作成できる。現時点では core、videoio、highgui モジュールが一部の依存物についてこの仕組みをサポートしている。場合によっては、VIDEOIO_PLUGIN_LIST や HIGHGUI_PLUGIN_LIST のようなオプションを設定することで、プラグインをOpenCVと一緒にビルドできる。このシナリオに関連するオプションは OpenCV設定オプションリファレンス で確認できる。それ以外の場合、プラグインは独自のビルド手順で個別にビルドする必要があり、このセクションではそのようなスタンドアロンのビルド処理を説明する。
ビルド手順はメインのOpenCVビルドと同様だが、対応するサブディレクトリにある専用のCMakeプロジェクトを使う必要がある。これらのフォルダにはリファレンス用のスクリプトやDockerイメージも含まれていることがある。ローダーがプラグインを見つけられるように、プラグインには opencv_<module>_<backend> という名前のプレフィックスを使うことが重要である。サポートされる各プレフィックスは1つのライブラリの読み込みにのみ使えるが、1つのプレフィックスに対して複数の候補を試すことができる。例えば libopencv_videoio_ffmpeg_3.so と libopencv_videoio_ffmpeg_4.so のプラグインを用意でき、最初に正常に読み込めたものが内部スロットを占有し、探索処理を停止する。利用可能なプレフィックスとプロジェクトの場所を次の表に示す:
| module | backends | location |
|---|---|---|
| core | parallel_tbb, parallel_onetbb, parallel_openmp | opencv/modules/core/misc/plugins |
| highgui | gtk, gtk2, gtk3 | opencv/modules/highgui/misc/plugins |
| videoio | ffmpeg, gstreamer, intel_mfx, msmf | opencv/modules/videoio/misc |
例:
OpenCV_DIR 環境変数またはCMake変数を OpenCVConfig.cmake ファイルのあるディレクトリに設定する。これはOpenCVのビルドディレクトリ、またはインストールを行った場所のパスでありうる。