2012/07/07

Ubuntu12.04にOpenCV2.4.2をインストール

Ubuntu11.10から12.04にアップグレードインストールしたのですが、「コンピュータにエラーが見つかりました」というメッセージが起動時に出るようになりました。毎回出るのが鬱陶しくなってきたので、Ubuntuの領域を削除し最初からインストールすることにしました。


インストールした直後のUbuntuには当然OpenCVはインストールされていないので、下記サイトを参考に、OpenCV2.4.2をインストールしました。

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

まずはOpenCV2.4.2のソースコードをダウンロードしてきて解凍しておきます。
あとは必要なライブラリのインストール。600MB程度あるので結構時間がかかりました。

sudo apt-get -yV install build-essential
sudo apt-get -yV build-dep opencv 
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

GUIでMakefileを作りたいのでGUIもインストール
sudo apt-get install cmake-gui

CMake-GUIでOpenCVのソースディレクトリとビルド用のディレクトリを指定し、Configureを押します。その後必要なライブラリやオプションを指定し(PCのグラボはATIなのでGPU関係はインストールしないことにしました)、Generateを押してmakefileを作ります。
ビルド用ディレクトリで以下のコマンドを実行します。

make -j6
sudo make install

makeの-jオプションは、同時実行するジョブの上限を指定します。
CPUのコア数と同じにするとCPUをフルに使ってビルドしてくれます。私の環境ではビルド中、6コアのCPUがほぼ100%の使用率で、完了まで10分程度でした。

さて、きちんとインストールされているか確かめるために何かサンプルを動かしてみることにします。
サンプル選びのためにsamples/cppフォルダを見てみると、ビデオカードっぽいものの基板の写真がありました。grepで検索してみると、

grep board.jpg *.cpp
houghcircles.cpp:    const char* filename = argc >= 2 ? argv[1] : "board.jpg";

houghcircles.cppがこの画像ファイルを使っているようなので、これをビルドしてみます。

まずはコンパイルだけ
gcc -c houghcircles.cpp

OK。次はそれっぽいライブラリとともにリンクします。
gcc houghcircles.cpp -o hough.o -lopencv_calib3d -lopencv_core -lopencv_highgui -lopencv_imgproc

実行ファイルができたので動かしてみます。
./hough.o


誤検出はありますが、電解コンデンサが検出されています。
問題なく動作しているようですね。


ではまた。

0 件のコメント:

コメントを投稿