linux(CentOS)にOpencv2.3をインストール
ここを参考にさせて頂きました!
準備
gccのインストール
2.3はgccのバージョンが4.3以上必要らしい。
ここが結構はまった。
yum install gcc44 yum install gcc44-c++
なぜか僕の環境では、最初gcc44-c++がyumから入れられなかった。
理由は、libstdc++44というライブラリが必要だったこと
gcc44-c++を入れるのに必要なんだけど、yumからこのライブラリを入れようとすると、
404エラーがかってくる。他のサーバーでは入れられたのに(/_;)
仕方が無いので、ネットでcentosのlibstdc++44のrpmパッケージを探して入れた。
wget ftp://ftp.pbone.net/mirror/ftp.centos.org/5.7/os/x86_64/CentOS/libstdc++44-devel-4.4.4-13.el5.x86_64.rpm rpm -ivh libstdc++44-devel-4.4.4-13.el5.x86_64.rpm
cmakeのインストール
今回はyumからインストールした。
yum install cmake
だったかな?昔入れたのて覚えてない。。。
ライブラリのインストール
zlib, jpeg, png, tiff, ffmpegあたりが必要かな?
前入れてたので今回は省略、使わないやつも入れてない。
yum install libpng-devel libjpeg-devel //png, jpegサポート yum install --enablerepo=rpmforge ffmpeg-devel gstreamer-devel //動画入出力サポート
とかするといいらしい。
Opencvのダウンロード
公式サイトからDL。
適当なとこに移動して、DL&解凍。
wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2/download tar jxfv OpenCV-2.3.1a.tar.bz2 cd OpenCV-2.3.1 #ビルド用のフォルダを作る mkdir release
ビルドっ!
cmake
今回はこんな感じのオプションにした。適時インストールPathを設定してもいいかも。
cmake -D BUILD_EXAMPLES=YES -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/[your install path] -D BUILD_NEW_PYTHON_SUPPORT=NO -D WITH_1394=OFF -D CMAKE_C_COMPILER=gcc44 -D CMAKE_CXX_COMPILER=g++44 ../
結果は下記の通り
-- General configuration for opencv 2.3.1 ===================================== -- -- Built as dynamic libs?: YES -- Compiler: /usr/bin/c++ -- C++ flags (Release): -Wall -Wno-long-long -pthread -ffunction-sections -O3 -DNDEBUG -fomit-frame-pointer -msse -msse2 -DNDEBUG -- C++ flags (Debug): -Wall -Wno-long-long -pthread -ffunction-sections -g -O0 -DDEBUG -D_DEBUG -ggdb3 -- Linker flags (Release): -- Linker flags (Debug): -- -- GUI: -- GTK+ 2.x: NO -- GThread: NO -- -- Media I/O: -- ZLib: YES -- JPEG: TRUE -- PNG: TRUE -- TIFF: TRUE -- JPEG 2000: build -- OpenEXR: NO -- OpenNI: NO -- OpenNI PrimeSensor Modules: NO -- XIMEA: NO -- -- Video I/O: -- DC1394 1.x: NO -- DC1394 2.x: NO -- FFMPEG: YES -- codec: YES -- format: YES -- util: YES -- swscale: YES -- gentoo-style: YES -- GStreamer: NO -- UniCap: NO -- PvAPI: NO -- V4L/V4L2: / -- Xine: NO -- -- Other third-party libraries: -- Use IPP: NO -- Use TBB: NO -- Use ThreadingFramework: NO -- Use Cuda: NO -- Use Eigen: NO -- -- Interfaces: -- Python: YES -- Python interpreter: /usr/bin/python (ver ) -- Python numpy: NO (Python wrappers will not be generated) -- Java: NO -- -- Documentation: -- Sphinx: NO -- PdfLaTeX compiler: NO -- Build Documentation: NO -- -- Tests and samples: -- Tests: YES -- Examples: NO -- -- Install path: /usr/local -- -- cvconfig.h is in: /root/temp/OpenCV-2.3.1/release -- -----------------------------------------------------------------
make&install
コンパイラに怒られないか心配しながらmake
make make install
すると、/usr/loca/libと/usr/local/includeにインストールされる
動作確認
テストコード
テキトーに書いた。
画像はsampleからとってきた。
今回はグレースケールにして保存するテストにしてみた。
#include <iostream> #include <opencv/cv.h> #include <opencv/highgui.h> using namespace std; int main(){ cout << "welcome to OpenCV world!" <<endl; cv::Mat img; img = cv::imread("airplane.jpg", 0); cv::imwrite("out.jpg", img); return 0; }
ビルド
パスを通して、
こんな感じでコンパイル&実行
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib g++44 test.cpp -I/usr/local/include -L/usr/local/lib -lopencv_core -lopencv_highgui ./a.out
動いた!
ちゃんと画像がグレーになってました(・∀・)
おしまい!
*今回はサーバー2台分にインストールで、記述や結果ちょっとおかしい部分や、書き忘れがあるかもしれません。
しかしめっちゃ時間かかった。
何回やり直したことか。。。
インストールってめちゃんこめんどくさいよね^^;