Linux で OpenCV バージョン 2.4.3 のインストール(ソースコードを使用)とテスト実行

OpenCV (Open Computer Vision Library) は, 実時間コンピュータビジョン (real time computer vision) の アルゴリズムと文書とサンプルコードの集まり.

このページでは,Linux (Ubuntu や Fedora 15) での OpenCV バージョン 2.4.3のビルドとインストール手順を図解等で説明する.

このページでは、以下,次の2通りの手順について説明している.

末尾にはサンプルプログラムのソースコードと動作手順も付けています。

Ubuntu での Intel TBB (Intel Threading Building Blocks) インストール手順は, 別の Web ページで説明している.

* 参考 Web ページ: https://opencv.org

Ubuntu で OpenCV バージョン 2.4.3 のインストール(ソースコードを使用)を行うシェルスクリプト

楽をしたいのでシェルスクリプトを作りました。 Ubuntu で下記のシェルスクリプトを実行すると、 OpenCV バージョン 2.4.3 のインストール(ソースコードを使用)が行われます. Ubuntu 12.04 を用いて動作確認済みです.

* OpenCV バージョン 2.3.1a のインストール(ソースコードを使用)の手順については、別の Web ページで説明している.

* 1つ1つコマンドを入力したい(シェルスクリプトにしたくない)場合については、この Web ページの下で説明している.

# 最初は前提ソフトウェアのインストール
sudo apt -y install build-essential
#
cd /tmp; sudo apt-get source opencv
sudo apt-get -yV build-dep opencv 
# 
sudo apt -y install libjpeg-dev
sudo apt -y install libopenjpeg-dev
sudo apt -y install jasper
sudo apt -y install libjasper-dev libjasper-runtime
sudo apt -y install libpng12-dev
sudo apt -y install libpng++-dev libpng3
sudo apt -y install libpnglite-dev libpngwriter0-dev libpngwriter0c2
sudo apt -y install libtiff-dev libtiff-tools pngtools
sudo apt -y install zlib1g-dev zlib1g-dbg
sudo apt -y install v4l2ucp
#
sudo apt -y install python
sudo apt -y install autoconf
sudo apt -y install libtbb2 libtbb-dev
sudo apt -y install libeigen2-dev
sudo apt -y install cmake
sudo apt -y install openexr
sudo apt -y install gstreamer-plugins-*
sudo apt -y install freeglut3-dev
sudo apt -y install libglui-dev
sudo apt -y install libavc1394-dev libdc1394-22-dev libdc1394-utils
# ビデオ関係のパッケージ 
sudo apt -y install libxine-dev
sudo apt -y install libxvidcore-dev 
sudo apt -y install libva-dev
sudo apt -y install libssl-dev
sudo apt -y install libv4l-dev
sudo apt -y install libvo-aacenc-dev
sudo apt -y install libvo-amrwbenc-dev 
sudo apt -y install libvorbis-dev 
sudo apt -y install libvpx-dev

cd /tmp
if [ ! -f OpenCV-2.4.3.tar.bz2 ]; then 
    wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.3/OpenCV-2.4.3.tar.bz2
fi 

sudo rm -rf OpenCV-2.4.3
tar -xvjof /tmp/OpenCV-2.4.3.tar.bz2
cd OpenCV-2.4.3
cmake -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=RELEASE -DWITH_TBB=ON -DINSTALL_C_EXAMPLES=ON -DWITH_CUDA=OFF -DWITH_OPENNI=ON -DWITH_UNICAP=ON -DWITH_V4L=ON -DWITH_XINE=ON  .
make
sudo make install
sudo /sbin/ldconfig

OpenCV のサンプルプログラムは、このWebページの末尾につけています.

Linux で, コマンドを手入力して,OpenCV バージョン 2.4.3のソースコードのインストール(ソースコードを使用)を行う場合の手順 (Ubuntu や Fedora を使用)

前準備

* Ubuntu 12.04 の場合の操作手順(例)

Ubuntu の他のバージョンでも同様の手順になります

  1. アップデート操作
    sudo apt-get -yV update
    sudo apt-get -yV upgrade
    sudo reboot
    
  2. ビルドに必要となる前提ソフトウェアのインストール 

    「apt-get build-dep」を使うと簡単.

    sudo apt -y update
    sudo apt -y install build-essential
    #
    cd /tmp; sudo apt-get source opencv
    sudo apt-get -yV build-dep opencv 
    # 
    sudo apt -y install libjpeg-dev
    sudo apt -y install libopenjpeg-dev
    sudo apt -y install jasper
    sudo apt -y install libjasper-dev libjasper-runtime
    sudo apt -y install libpng12-dev
    sudo apt -y install libpng++-dev libpng3
    sudo apt -y install libpnglite-dev libpngwriter0-dev libpngwriter0c2
    sudo apt -y install libtiff-dev libtiff-tools pngtools
    sudo apt -y install zlib1g-dev zlib1g-dbg
    sudo apt -y install v4l2ucp
    #
    sudo apt -y install python
    sudo apt -y install autoconf
    sudo apt -y install libtbb2 libtbb-dev
    sudo apt -y install libeigen2-dev
    sudo apt -y install cmake
    sudo apt -y install openexr
    sudo apt -y install gstreamer-plugins-*
    sudo apt -y install freeglut3-dev
    sudo apt -y install libglui-dev
    sudo apt -y install libavc1394-dev libdc1394-22-dev libdc1394-utils
    # ビデオ関係のパッケージ 
    sudo apt -y install libxine-dev
    sudo apt -y install libxvidcore-dev 
    sudo apt -y install libva-dev
    sudo apt -y install libssl-dev
    sudo apt -y install libv4l-dev
    sudo apt -y install libvo-aacenc-dev
    sudo apt -y install libvo-amrwbenc-dev 
    sudo apt -y install libvorbis-dev 
    sudo apt -y install libvpx-dev
    
    # swig
    cd /tmp
    wget http://sourceforge.net/projects/swig/files/swig/swig-2.0.6/swig-2.0.6.tar.gz
    tar -xvzof swig-2.0.6.tar.gz
    cd swig-2.0.6
    ./configure
    make
    sudo make install
    

* Fedora 15 の場合の操作手順(例)

  1. アップデート操作
    sudo yum check-update
    sudo yum update
    sudo reboot
    
  2. ビルドに必要となる前提ソフトウェアのインストール 

    python, gtk+ などのインストールを行う

    yum install gcc
    yum install g++
    yum install python
    yum install gtk+-devel
    yum install libjpeg-devel
    yum install libtiff-devel
    yum install jasper-devel
    yum install libpng-devel
    yum install zlib-devel
    # 4 エル 2
    yum install v4l2*
    yum install totem
    yum install xine
    yum install unicap-devel
    yum install autoconf
    
    # swig
    cd /tmp
    wget http://sourceforge.net/projects/swig/files/swig/swig-2.0.6/swig-2.0.6.tar.gz
    tar -xvzof swig-2.0.6.tar.gz
    cd swig-2.0.6
    ./configure
    make
    make install
    

    OpenCV のダウンロードとビルトとインストール手順

    1. Web ページを開く

      http://sourceforge.net/projects/opencvlibrary/

    2. Files」をクリック
    3. opencv-unix」をクリック
    4. 2.4.3」をクリック
    5. ソースコードが欲しいので「OpenCV-2.4.3.tar.bz2」をクリック
    6. ダウンロードしたファイルを /tmp に置く
    7. 展開

      以下の操作はコンソールで行う(以下、画面キャプチャは Ubuntu 12.04 のもの)

      cd /tmp
      tar -xvjof /tmp/OpenCV-2.4.3.tar.bz2
      
    8. (オプション) 「ccmake .」を実行して,設定を確認する
    9. 「cmake .」の実行

      ◆実行例

      cd OpenCV-2.4.3
      cmake -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=RELEASE -DWITH_TBB=ON -DINSTALL_C_EXAMPLES=ON -DWITH_CUDA=OFF -DWITH_OPENNI=ON -DWITH_UNICAP=ON -DWITH_V4L=ON -DWITH_XINE=ON  .
      
    10. cmake . の結果の確認
    11. make の実行
      make
      
    12. make の結果の確認

      エラーメッセージが出ていないこと

      make のときにエラーが出たら 「cmake .」のところに戻って cmake のパラメータを調整して、もう1度繰り返す。

    13. sudo make install の実行
      sudo make install
      
    14. sudo make install の結果の確認

      * エラーメッセージが出ていないこと

    15. sudo /sbin/ldconfig の実行

    試しに OpenCV を使ってみる

    画像ファイルの読み込みと表示

    ◆プログラムの例

    • imread: 画像ファイルの読み込み
    • namedWindow: ウインドウを開く
    • imshow: ウインドウに画像を表示
    #include<cv.h>
    #include<highgui.h>
    
    using namespace cv;
    
    int main( int argc, char** argv )
    {
      Mat rgb;
    
      rgb = imread( "/usr/local/share/OpenCV/samples/c/fruits.jpg", /* 3-channel color image */ 1 );
      namedWindow( "Display Image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO );
      imshow( "Display Image", rgb );
    
      waitKey(0);
    
      return 0;
    }
    

    ◆コンパイルコマンドの例

    Linux の場合を示している.

    g++ -o a.out hoge.cc -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_core
    

    ◆ 実行結果の例 (OpenCV バージョン 2.4.0 で実行)

    ./a.out
    

    カラー画像の濃淡画像への変換

    ◆プログラムの例

    • cvtColor: 色空間における変換
    #include<cv.h>
    #include<highgui.h>
    
    using namespace cv;
    
    int main( int argc, char** argv )
    {
      Mat rgb, gray; 
    
      rgb = imread( "/usr/local/share/OpenCV/samples/c/fruits.jpg", /* 3-channel color image */ 1 );
      cvtColor(rgb, gray, CV_BGR2GRAY);
    
      namedWindow( "Display Image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO );
      imshow( "Display Image", gray );
    
      waitKey(0);
    
      return 0;
    }
    

    ◆コンパイルコマンドの例

    Linux の場合を示している.

    g++ -o a.out hoge.cc -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core
    

    ◆ 実行結果の例 (OpenCV バージョン 2.4.0 で実行)

    ./a.out
    

    Opening と Closing によるノイズ除去

    ◆プログラムの例

    • morphologyEx: 構造要素を用いたモルフォロジー演算
    #include<cv.h>
    #include<highgui.h>
    
    using namespace cv;
    
    int main( int argc, char** argv )
    {
      Mat rgb, hsv, hsv2, hsv3, rgb3;
    
      rgb = imread( "/usr/local/share/OpenCV/samples/c/fruits.jpg", /* 3-channel color image */ 1 );
      cvtColor(rgb, hsv, CV_BGR2HSV);
      morphologyEx(hsv, hsv2, MORPH_OPEN, getStructuringElement(MORPH_ELLIPSE, Size(1, 1) ) ) ;
      morphologyEx(hsv2, hsv3, MORPH_CLOSE, getStructuringElement(MORPH_ELLIPSE, Size(1, 1) ) ) ;
      cvtColor(hsv3, rgb3, CV_HSV2BGR);
    
      namedWindow( "Display Image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO );
      imshow( "Display Image", rgb3 );
    
      waitKey(0);
    
      return 0;
    }
    

    ◆コンパイルコマンドの例

    Linux の場合を示している.

    g++ -o a.out hoge.cc -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core
    

    ◆ 実行結果の例 (OpenCV バージョン 2.4.0 で実行)

    ./a.out