一部コンテンツはCVS版のOpenCV(1.1)とUbuntu8.04という古い環境のもの

取得

  • まずは取得.
  • 2008年10月10日現在,まだ正式リリースはされていないので,CVS版をゲット.
  • が,のっけからこけた.大学のネットワークがプロキシ必須で,LinuxのCVSはパッチを当てない限りプロキシを経由できない
  • あきらめて別のネットワーク→Windows経由→CVS経由で取得した.

コンパイル

  • うっかり,utils/maintainer_clean.cmdをWindowsで実行してしまったがために,configureが消えるというアクシデント.
  • しょうがないので再びcvsでupdate
  • configureしたら,はまるはまる
    • まずは日付の問題.
    • 日本時間のWindowsマシンを経由したがために取得時が未来,コンパイル時が過去になってしまった.
      • touch ./configureで解決
    • CRコードにはまる.
      • autotools/configure.guess かなんかが改行コードの問題で動かなかった.
        cp autotools/configure.gess autotools/configure.guess.dos
        sed 's/^M$//' autotools/configure.guess.dos > autotools/configure.guess
        ./configure
    • haartrainingにはまる (1)
      • なぜかHaarTrainingではなくhaartrainingになってたので,全て手動で./configure内のhaartraining をHaarTrainingに書き換え
    • HaarTrainingにはまる (2)
      • HaarTraining以下が空っぽではまった.
      • どうせ何でもいいだろうと*1,OpenCV 1.0 以下のhaartraing*2をごっそりコピー
        cp opencv-1.0.0/apps/haartraining/* opencv/apps/HaarTraining/ -r
    • ようやくconfigureにありつく
    • が,gstreamerがoffになってるので,--with-gstreamerでconfigureし直し
      ./configure --with-gstreamer=yes
      • --with-gstreamer=yes にしても,なぜかconfigure の結果では use gstreamer no になってしまう.
      • フランソワの協力を経て,チェックしてみたら, libgstreamer0.10-dev が入ってなかった.
      • おそらくgstreamer develop 用の library なのだろう.
        sudo apt-get install libgstreamer0.10-dev
      • configure の結果, use gstreamer yes でconfigureできた.
    • が,今度はmakeでこけた.
      • opencv/configure.in 内で HaarTraingが全て小文字
      • viでconfigure.in を書き換え
        %s/haartraining/HaarTraining/g
    • まだまだmakeでこける
      • 以下の中にもhaartrainingが存在するので消去消去
      • opencv/apps/Makefile
      • opencv/apps/Makefile.in
      • opencv/apps/Makefile.am
      • opencv/apps/HaarTraining/Makefile
    • ようやくmake
      make all

ようやくinstall

  • make install
    sudo make install
    • warningは出るがエラーは出なかったっぽい.
  • パスの設定
    • /etc/ld.so.conf に /usr/local/lib を追加する
      sudo vi /etc/ld.so.conf
    • pkg-configの設定
      • .bashrcに以下を追加
        export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}
  • しかし,それでもサンプルが動かない.
    • Segmentation Faultで落ちる落ちる・・・
    • エラーメッセージを読みとくにGTK+2.0が入ってないからじゃないか,と推測
    • というわけでGTK+2.0用のライブラリをインストール
      sudo apt-get install libgtk2.0-dev
  • ./configureに戻ってやり直し〜*3
    ./configure --with-gstreamer=yes --with-gtk=yes
    make all
    sudo make install
  • サンプルのビルド
    cv opencv/samples/c
    sh build_all.sh
    ./laplace
  • 動いた!

実際にソースコードをコンパイルする場合

  • Cで記述した場合
    gcc `pkg-config --cflags opencv` `pkg-config --libs opencv` source.c
  • C++で記述した場合
    g++ `pkg-config --cflags opencv` `pkg-config --libs opencv` source.cpp
  • もちろん,上記の通りpkgをインストールしておかなければならない

Video回りの設定

  • どうもUbuntuっていうかLinuxではOpenCVのVideo回りが怪しい.
  • 少なくとも,1.1pre1をUbuntu*4上で動かすと,cvSetCapturePropertyで再生フレーム番号与えることができない.
  • ネットを散見すると,Linux+OpenCVの組み合わせでは
    • サイズの変更
    • サイズの取得
    • フレーム番号の取得
  • などできないっぽい.
  • もしかしたらffmpegとか入れれば直るのかも知れない.
  • うろ覚えだが,videoInputライブラリがLinuxに対応してたかも?
    • カメラを制御する場合はvideoInputライブラリを使った方が断然素直.

LinuxでOpenCVをbuildする

ジャンル:OpenCV:OpenCV 1.1準拠


*1 んで,ホントに何でも良いんだから,いい加減だよな!
*2 OpenCv 1.00がhaartrainingだから,1.10のディレクトリ名がおかしいのかも?
*3 勉強小僧の声で
*4 バージョンは8.04 32bit
*1  LinuxでOpenCVを入れて適当なコードをコンパイルするまで | .COM-POUND, 2010-09-01公開, 2015-01-13閲覧
*2  ser1zw, OpenCVをホームディレクトリ以下にインストールする - ser1zw's blog, 2011-08-23公開, 2015-01-13閲覧
*3  神田崇史, OpenCV のインストール, 2009-05-07更新, 2015-01-13閲覧
*4  apt get - Package opencv was not found in the pkg-config search path - Stack Overflow, 2013-03-10, 2014-02-04更新, 2015-01-13閲覧
*5  OpenCV - 2.x - Tech Note, 2015-01-13閲覧

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-01-14 (水) 16:48:20 (894d)