UbuntuにOpenCV 2.4.9を構築する手順
Ubuntu環境でOpenCVを動作させるためには、適切な依存関係の解決とビルドプロセスの理解が不可欠です。本記事では、Ubuntu 12.04(他のバージョンでも同様)にOpenCV 2.4.9をソースからビルドしてインストールする方法を解説します。
必要なパッケージのインストール
まず、コンパイルや画像・動画処理に必要なライブラリ群をAPTで事前に導入します。
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev libtiff5-dev libjasper-dev
sudo apt-get install cmake pkg-config
上記コマンドにより、C/C++のビルド環境、GUIサポート(GTK+)、画像フォーマット(JPEG, PNG, TIFFなど)、およびマルチメディア処理用のFFmpeg系ライブラリが準備されます。
ソースコードの取得と展開
OpenCV 2.4.9のソースは公式アーカイブまたはミラーからダウンロード可能です。
wget -O opencv-2.4.9.zip https://github.com/opencv/opencv/archive/2.4.9.zip
unzip opencv-2.4.9.zip
cd opencv-2.4.9
ビルドディレクトリの作成とCMakeによる構成
ソース内での直接ビルドは推奨されません。別途ビルド専用ディレクトリを作成し、そこで構成を行います。
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
..
CMakeは依存関係をチェックし、Makefileを生成します。正常終了すれば、次ステップに進みます。
コンパイルとインストール
makeコマンドでソースをコンパイルします。CPUコア数に応じて並列ビルドを指定すると高速化できます。
make -j$(nproc)
ビルド成功後、管理者権限でシステムにインストールします。
sudo make install
ライブラリパスの登録
インストールされた共有ライブラリをシステムが認識できるよう、ランタイムリンカにパスを追加します。
echo '/usr/local/lib' | sudo tee /etc/ld.so.conf.d/opencv.conf
sudo ldconfig
pkg-configの設定
プログラムからOpenCVのインクルードパスやリンクフラグを自動取得するために、pkg-configの検索パスを拡張します。
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
# システム全体で使う場合は ~/.bashrc または /etc/environment に追加
echo 'export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig' >> ~/.bashrc
設定後、以下のコマンドでOpenCVの情報を確認できます。
pkg-config --cflags --libs opencv
サンプルプログラムによる動作確認
OpenCV付属のサンプルを使って動作テストを行います。
cd /usr/local/share/OpenCV/samples/c
chmod +x build_all.sh
./build_all.sh
顔検出のデモを実行してみましょう。Lena画像とHaarカスケードファイルが必要です。
./facedetect cascade="/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml" lena.jpg
正しく検出されれば、ウィンドウに顔領域が矩形で表示されます。
トラブルシューティング
- GTKエラー: libgtk2.0-devが未インストールの場合、GUI機能が無効になります。
- libpng関連のリンクエラー: 必要な開発パッケージ(libpng-devなど)を追加でインストールしてください。
- pkg-configが見つからない: PATHまたはPKG_CONFIG_PATHの設定を見直してください。