UbuntuにOpenCV2.3.1をmakeしてインストール

################################################
#結果的にOpenCV2.3.1をUbuntu10.04にインストールすると,
#VIDIOC_DQBUF: 入力/出力エラーです
#libv4l2: error converting / decoding frame data: v4l-convert: error parsing JPEG header: Not a JPG file ?
#というようなエラーが出たり,あまりうまく行かなかったので,
#かわりにOpenCV2.2をインストールして見ましたが,こちらは特に問題はないようです.
#OpenCV2.2のインストールも下記の方法と同じようにして入れることができます.
################################################

UbuntuOpenCVをapt-getではなく、makeしてインストールします。

Ubuntuは10.04、OpenCVは2.3.1を使います。

まずは、必要そうなものをapt-getでインストールします。
実際にインストールしたのは、下のサイトで意んんストールしているものをかたっぱしからインストールしてみました。

http://tai1-mo.blogspot.jp/2011/08/opencv231-for-ubuntu1004.html
http://www.kkaneko.com/rinkou/opencv/opencvinstalllinux.html
http://www.mori-soft.com/2008-08-15-01-36-37/opencv/90-opencv-21

そして、OpenCVをダウンロードしてきます。
http://opencv.org/downloads.html

今回はMakefileをつくるためにccmakeを使うので、ccmakeをインストールします。
(cmakeでも別にいいです。)
sudo apt-get install cmake-curses-gui

tar xvf OpenCV-2.3.1a.tar.bz2
cd OpenCV-2.3.1
mkdir build
cd build
ccmake ..

としてConfig画面を出します。
何をどのように設定したのかは、さっきのサイトをみて、いりそうなやつを設定してみました。

make -j 4
sudo make install

でおkです。
これで入ったら、
/usr/local/include
にヘッダーが、
/usr/local/lib
にライブラリが入ります。

エラーがでたらその都度対応して、出なくなったら、サンプルを実行してみます。
それもおkなら、下記のサイトでカメラとかいらなそうなサンプルを持ってきてコンパイルできるかどうか試します。

http://book.mycom.co.jp/support/pc/opencv2/c3/opencv_img.html

コンパイルするときのオプションは次のようにします。
g++ -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_core main.cpp

`pkg-config --cflags --libs opencv`とかしてしまうと、apt-getで入っている方のOpenCVが当てられてしまうので注意です。

しかし、この様にすると、自分はこの様なエラーになってしまいました。 

error while loading shared libraries: libopencv_highgui.so.2.3: cannot open shared object file: No such file or directory

ライブラリのpathを-Lで設定しているのに見つけていないようです。

これはこのサイトをみて解決しました。
http://www.ozbotz.org/opencv-install-troubleshooting/ 

echo "LD_LIBRARY_PATH=/usr/local/lib" >> ~/.bashrc
 
これで環境は整いました。