2013년 11월 21일 목요일

Linux で OpenCV バージョン 2.4.7

번역에서 제공
[サイトマップへ]  

Linux で OpenCV バージョン 2.4.7 のダウンロードとビルドとインストールとテスト実行

OpenCV (Open Computer Vision Library) とは, 実時間コンピュータビジョン (real time computer vision) の アルゴリズムと文書とサンプルコードの集まり.
この Web ページでは,Linux (Ubuntu) での OpenCV バージョン 2.4.7のビルドとインストール手順を図解等で説明します.
この Web ページでは、以下,次の2通りの手順について説明しています
  • Ubuntu で OpenCV バージョン 2.4.7 のダウンロードとビルドとインストールを行うシェルスクリプト
  • Linux で, コマンドを手入力して,OpenCV バージョン 2.4.7 のソースコードのダウンロードとビルドとインストールを行う場合の手順 (Ubuntu を使用)
    → 他の Linux でも同様の手順になると思います.
末尾にはサンプルプログラムのソースコードと動作手順も付けています。
Ubuntu での Intel TBB (Intel Threading Building Blocks) インストール手順は, 別の Web ページで説明しています.
※ 参考 Web ページ: http://opencv.jp/

Ubuntu で OpenCV バージョン 2.4.7 のダウンロードとビルドとインストールを行うシェルスクリプト

楽をしたいのでシェルスクリプトを作りました。 Ubuntu で下記のシェルスクリプトを実行すると、 OpenCV バージョン 2.4.7 のダウンロードとビルドとインストールが行われます. Ubuntu 12.04 を用いて動作確認済みです.
※ 1つ1つコマンドを入力したい(シェルスクリプトにしたくない)場合については、この Web ページの下で説明しています。
# 最初は前提ソフトウエアのインストール
sudo apt-get -yV install build-essential
#
cd /tmp; sudo apt-get source opencv
sudo apt-get -yV build-dep opencv 
# 
sudo apt-get -yV install libqt4-dev 
sudo apt-get -yV install libgtk2.0-dev 
sudo apt-get -yV install pkg-config 
#
sudo apt-get -yV install opencl-headers 
# 
sudo apt-get -yV install libgomp1
# 
sudo apt-get -yV install libjpeg-dev
sudo apt-get -yV install libopenjpeg-dev
sudo apt-get -yV install jasper
sudo apt-get -yV install libjasper-dev libjasper-runtime
sudo apt-get -yV install libpng12-dev
sudo apt-get -yV install libpng++-dev libpng3
sudo apt-get -yV install libpnglite-dev libpngwriter0-dev libpngwriter0c2
sudo apt-get -yV install libtiff-dev libtiff-tools pngtools
sudo apt-get -yV install zlib1g-dev zlib1g-dbg
sudo apt-get -yV install v4l2ucp
#
sudo apt-get -yV install python
sudo apt-get -yV install autoconf
sudo apt-get -yV install libtbb2 libtbb-dev
sudo apt-get -yV install libeigen2-dev
sudo apt-get -yV install cmake
sudo apt-get -yV install openexr
sudo apt-get -yV install gstreamer-plugins-*
sudo apt-get -yV install freeglut3-dev
sudo apt-get -yV install libglui-dev
sudo apt-get -yV install libavc1394-dev libdc1394-22-dev libdc1394-utils
# ビデオ関係のパッケージ 
sudo apt-get -yV install libxine-dev
sudo apt-get -yV install libxvidcore-dev 
sudo apt-get -yV install libva-dev
sudo apt-get -yV install libssl-dev
sudo apt-get -yV install libv4l-dev
sudo apt-get -yV install libvo-aacenc-dev
sudo apt-get -yV install libvo-amrwbenc-dev 
sudo apt-get -yV install libvorbis-dev 
sudo apt-get -yV install libvpx-dev

cd /tmp
# if [ ! -f OpenCV-2.4.7.tar.bz2 ]; then 
#     wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.7/OpenCV-2.4.7.tar.bz2
# fi 
wget https://github.com/Itseez/opencv/archive/2.4.7.tar.gz
mv 2.4.7.tar.gz OpenCV-2.4.7.tar.gz

sudo rm -rf OpenCV-2.4.7
tar -xvzof /tmp/OpenCV-2.4.7.tar.gz
cd opencv-2.4.7
cmake -DBUILD_SHARED_LIBS=OFF -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=RELEASE -DWITH_TBB=ON -DWITH_GTK=ON -DWITH_OPENGL=ON -DWITH_QT=ON -DINSTALL_C_EXAMPLES=ON -DWITH_OPENCL=OFF -DWITH_CUDA=OFF -DWITH_OPENNI=ON -DWITH_UNICAP=ON -DWITH_V4L=ON -DWITH_XINE=ON -DWITH_OPENEXR=ON -DBUILD_OPENEXR=ON .
make
sudo make install
sudo ldconfig
OpenCV のサンプルプログラムは、このWebページの末尾につけています.

Linux で, コマンドを手入力して,OpenCV バージョン 2.4.7 のソースコードのダウンロードとビルドとインストールを行う場合の手順 (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-get -yV install build-essential
    #
    cd /tmp; sudo apt-get source opencv
    sudo apt-get -yV build-dep opencv 
    # 
    sudo apt-get -yV install libqt4-dev 
    sudo apt-get -yV install libgtk2.0-dev 
    sudo apt-get -yV install pkg-config 
    # 
    sudo apt-get -yV install opencl-headers 
    # 
    sudo apt-get -yV install libjpeg-dev
    sudo apt-get -yV install libopenjpeg-dev
    sudo apt-get -yV install jasper
    sudo apt-get -yV install libjasper-dev libjasper-runtime
    sudo apt-get -yV install libpng12-dev
    sudo apt-get -yV install libpng++-dev libpng3
    sudo apt-get -yV install libpnglite-dev libpngwriter0-dev libpngwriter0c2
    sudo apt-get -yV install libtiff-dev libtiff-tools pngtools
    sudo apt-get -yV install zlib1g-dev zlib1g-dbg
    sudo apt-get -yV install v4l2ucp
    #
    sudo apt-get -yV install python
    sudo apt-get -yV install autoconf
    sudo apt-get -yV install libtbb2 libtbb-dev
    sudo apt-get -yV install libeigen2-dev
    sudo apt-get -yV install cmake
    sudo apt-get -yV install openexr
    sudo apt-get -yV install gstreamer-plugins-*
    sudo apt-get -yV install freeglut3-dev
    sudo apt-get -yV install libglui-dev
    sudo apt-get -yV install libavc1394-dev libdc1394-22-dev libdc1394-utils
    # ビデオ関係のパッケージ 
    sudo apt-get -yV install libxine-dev
    sudo apt-get -yV install libxvidcore-dev 
    sudo apt-get -yV install libva-dev
    sudo apt-get -yV install libssl-dev
    sudo apt-get -yV install libv4l-dev
    sudo apt-get -yV install libvo-aacenc-dev
    sudo apt-get -yV install libvo-amrwbenc-dev 
    sudo apt-get -yV install libvorbis-dev 
    sudo apt-get -yV install libvpx-dev
    
■ Fedora 15 の場合の操作手順(例)
  1. アップデート操作
    sudo yum check-update
    sudo yum update
    sudo reboot
    
  2. ビルドに必要となる前提ソフトウエアのインストール  p
    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
    

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

  1. Web ページを開く
  2. Files」をクリック
  3. opencv-unix」をクリック
  4. 最新版である「2.4.7」をクリック
  5. opencv-2.4.7.tar.gz をクリックして、ダウンロード。
  6. ダウンロードと展開
    以下の操作はコンソールで行う(以下、画面キャプチャは Ubuntu 12.04 のもの)
    ※ ダウンロードしたファイルを /tmp に置いている
    cd /tmp
    tar -xvzof /tmp/opencv-2.4.7.tar.gz
    
  7. (オプション) 「ccmake .」を実行して,設定を確認する
  8. 「cmake .」の実行
    ◆実行例
    参考 Web ページ: 「-DBUILD_SHARED_LIBS=OFF」については、http://docs.opencv.org/doc/tutorials/introduction/desktop_java/java_dev_intro.html
    cd opencv-2.4.7
    cmake -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=RELEASE -DWITH_TBB=ON -DWITH_GTK=ON -DWITH_OPENGL=ON -DWITH_QT=ON -DINSTALL_C_EXAMPLES=ON -DWITH_OPENCL=OFF -DWITH_CUDA=OFF -DWITH_OPENNI=ON -DWITH_UNICAP=ON -DWITH_V4L=ON -DWITH_XINE=ON  .
    
    ※ バージョン 2.4.4 では-DBUILD_opencv_java=OFFをつける.エラーの回避のため(環境によって、エラーが出ない場合もあると思います)。
  9. cmake . の結果の確認
  10. make の実行
    make
    
  11. make の結果の確認
    エラーメッセージが出ていないこと
    ※ make のときにエラーが出たら 「cmake .」のところに戻って cmake のパラメータを調整して、もう1度繰り返す。
  12. sudo make install の実行
    sudo make install
    
  13. sudo make install の結果の確認
    ※ エラーメッセージが出ていないこと
  14. sudo ldconfig の実行

試しに OpenCV を使ってみる

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

◆プログラムの例
  • imread: 画像ファイルの読み込み
  • namedWindow: ウインドウを開く
  • imshow: ウインドウに画像を表示
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

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.6.1 で実行)
./a.out

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

◆プログラムの例
  • cvtColor: 色空間における変換
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

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.6.1 で実行)
./a.out

Opening と Closing によるノイズ除去

◆プログラムの例
  • morphologyEx: 構造要素を用いたモルフォロジー演算
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

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.6.1 で実行)
./a.out

댓글 없음:

댓글 쓰기