YMMFに持っていくロボットにOpenCV使うから開発準備をしている。
最終的にはRaspberry Piに入れるんだけど、開発自体はVM上のLinux(CentOS6.4)で行うため、まずCentOS上にインストールした。
OpenCVのバージョンはとりあえず一番新しいOpenCV2.4.6.1にしてみた。
過去にbeagle Boardにインストールした時の資料とこのページ(http://hivecolor.com/id/85)を参考にしてみた。
まずは必要なツール・ライブラリ等のインストール
以前は一つ一つ入れていたけど面倒なので便利なパッケージでまとめて入れた。
(本当は必要無さそうなもの多そうだから避けたかったけど、それ以上に面倒だった)
ffmpegのインストールにrpmforgeリポジトリ有効にしているけど標準では使えない。
設定してない人は下記記事にリポジトリの追加の記事書いているから先に設定しておいてね。
Gitインストール
yum install cmake yum groupinstall "Development Tools" yum --enablerepo=rpmforge install ffmpeg-devel yum install gtk2-devel
上からcmakeのインスコ、開発ツール一式のグループインスコ、画像・動画処理関連のライブラリのインスコ
(それだけじゃサンプルコンパイル時にコケたのでgtk2-devも追加)
開発ツールは本当は多分gcc,g++,makeあたりがあればいい気がする。
次にOpenCVのソースをsourceforgeからダウンロードと解凍
wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.6.1/opencv-2.4.6.1.tar.gz tar xvzf opencv-2.4.6.1.tar.gz
あとはインストール作業
必要なパッケージさえ揃っていれば問題ないはず
cmakeでエラー出るときはなにか足りないからエラー読んで自分で追加してね
cd opencv-2.4.6.1 cmake . make make install ldconfig
今回はcmakeでオプション何も付けなかった。
オプション指定するの面倒だし、特に問題ないでしょ。TBBは多分デフォルトでOFFになってるはずだけどどうせ最終的にRaspbianで使うものだしTBBは設定しなくてもいいと思う。
他の例を見てたらあとのオプションはリリースモードかデバッグモードの設定、Pythonサポートの設定、サンプルのインストール設定かな?
あとはサンプルプログラムでも作って動くか試してみる。
g++ -I/usr/local/include -L/usr/local/lib -lopencv_core -lopencv_highgui -o sample sample.cpp
なんか実行時にライブラリを参照できなくてコケるので共有ライブラリの追加設定
LD_LIBRARY_PATH=/usr/local/lib:/usr/lib; export LD_LIBRARY_PATH
共有ライブラリの設定がわかりにくかったかな…
なんで自動で設定できてないんだろう。
(他の資料みたらmake installしたあとにldconfigってコマンドうってるのがあったからもしかしたらこれがそうなのかも? と言うかこのページ(http://linuxcom.info/linux-cmd-ldconfig.html)見る限りじゃ確実にそうだな)
ということで最初のmakeの設定のところに追加しました。
これでなんとか下記のサンプルが動くようになった。
#include <opencv/cv.h> #include <opencv/highgui.h> int main(int argc,char **argv){ Mat image; image = imread( "./sample.png", 1 ); namedWindow( "sample", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO ); imshow( "sample", image ); waitKey(0); return 0; }
最初、shell前提だったらGUI関係いらないだろってことでgtkなしでインスコしたらMatクラスとかIplImageとかはhighguiの担当っぽくてハマったのでライブラリを揃えてインスコしなおした。
次の記事でRaspberry Pi(Raspbian)にOpenCVをインストールする方法を書いていく。
コメント