OpenCV 2.4.13 と 3.1 を共存させる
OpenCVの勉強のためにインストールしてみました。
Ubuntu14.04では公式リポジトリからapt-getにてOpenCV2.4.8をインストール可能ですが、2.x系と3.x系を混在させたかったのでソースからインストールします。
試した環境は以下の通りです。
OS等 :Ubuntu-14.04 64bit Desktop@WMWare
バージョン:2.4.13, 3.1
その他 :TBB有効、CUDA無効
基本的な手順はここの受け売りになります。
関連パッケージのインストール
$ sudo apt-get -y install build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
OpenCVパッケージのアンインストール
$ sudo apt-get purge libopencv*
インストールディレクトリの作成。ここでは、ユーザのローカル(~/libs)に作成しています。
$ mkdir ~/libs
OpenCV 2.4.13のインストール。3.xむけのオプションも付加していますが、無視されます。
$ unzip opencv-2.4.13.zip $ mv opencv-2.4.13 ~/libs/. $ mkdir ~/libs/OpenCV2.4.13/release $ cd ~/libs/OpenCV2.4.13/release $ mkdir installed $ cmake -D CMAKE_INSTALL_PREFIX=~/libs/opencv-2.4.13/release/installed -D CMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_FFMPEG=OFF -D BUILD_opencv_python2=ON .. $ make install
同様に3.1.0もインストールします。
# Install OpenCV 3.1.0 $ unzip opencv-3.1.0.zip $ mv opencv-3.1.0 ~/libs/. $ mkdir ~/libs/OpenCV3.1.0/release $ cd ~/libs/OpenCV3.1.0/release $ mkdir installed $ cmake -D CMAKE_INSTALL_PREFIX=~/libs/opencv-3.1.0/release/installed -D CMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_FFMPEG=OFF -D BUILD_opencv_python2=ON .. $ make install
次にpkg-configを利用して、ライブラリのパス等を通します。設定ファイルはインストール先に作成されますが、多少変更が必要だったはずです。
作業したのが2週間前なので、変更箇所は忘れました。。
2.4.13のpkg-config設定ファイルです。
$ vim ~/libs/opencv-2.4.13/release/installed
# Package Information for pkg-config prefix=~/libs/opencv-2.4.13/release/installed exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir_old=${prefix}/include/opencv includedir_new=${prefix}/include Name: OpenCV Description: Open Source Computer Vision Library Version: 2.4.13 Libs: -L${exec_prefix}/lib -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -ltbb -lrt -lpthread -lm -ldl Cflags: -I${includedir_old} -I${includedir_new}
同様に、3.1.0のpkg-config設定ファイルです。
$ vim ~/libs/opencv-3.1.0/release/installed
# Package Information for pkg-config prefix=~/libs/opencv-3.1.0/release/installed exec_prefix=${prefix} libdir=${exec_prefix}/lib libdir3rd=${exec_prefix}/share/OpenCV/3rdparty/lib includedir_old=${prefix}/include/opencv includedir_new=${prefix}/include Name: OpenCV Description: Open Source Computer Vision Library Version: 3.1.0 Libs: -L${exec_prefix}/lib -L${libdir3rd} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lippicv -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core Libs.private: -L/usr/lib/x86_64-linux-gnu -lpng -lz -ltiff -ljasper -ljpeg -lImath -lIlmImf -lIex -lHalf -lIlmThread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lfreetype -lgstvideo-0.10 -lgstapp-0.10 -lgstbase-0.10 -lgstriff-0.10 -lgstpbutils-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lxml2 -lglib-2.0 -ldc1394 -lv4l1 -lv4l2 -ldl -lm -lpthread -lrt -ltbb Cflags: -I${includedir_old} -I${includedir_new}
コンパイル前にパスを通すための設定ファイルを作成します。2.4.13用の設定ファイルを以下の通りです。
$ vim setting-cv-2.4.13.sh
#! /bin/bash CV_LIB_PATH=~/libs/opencv-2.4.13/release/installed/lib export PKG_CONFIG_PATH=$CV_LIB_PATH/pkgconfig:$PKG_CONFIG_PATH export LD_LIBRARY_PATH=$CV_LIB_PATH:$LD_LIBRARY_PATH
同様に3.1.0用の設定ファイルを作成します。
$ vim setting-cv-3.1.0.sh
#! /bin/bash CV_LIB_PATH=~/libs/opencv-3.1.0/release/installed/lib export PKG_CONFIG_PATH=$CV_LIB_PATH/pkgconfig:$PKG_CONFIG_PATH export LD_LIBRARY_PATH=$CV_LIB_PATH:$LD_LIBRARY_PATH
次回は、サンプルデザインで実行してみます。