パノラマ画像つくったよ
最近、パノラマ画像を作る課題があった。
そいで、Ubuntu14.04にopencv3.1/opencv_contrbをインストールしたり、
pythonで使えるようにしたり、
AKAZE特徴量を使ったりするのにめちゃ手間取ってしまった。
それから、
opencv3のsampleにstitching.cppというコードがあるけれど、
美しすぎて各モジュールの依存関係がよくわからんかったり、
pythonでどうやって書くのと?と
色々詰まったので調べた。
それのメモ。
準備
環境
- ubuntu14.04
- python2.7.6
opencv3.1/opencv_contrbのインストール
なぜ3.1を入れたのかというと、
単に3.0でcontribがコンパイルできなかったから。
なんかCUDA周りで怒られてしまう。
エラーメッセージでググってると、
どっかの記事に3.1を入れればいいYO!HAHAHAと外人が言ってたので、
何も考えず3.1を入れた。
まず、適当なフォルダ上で
$ git clone https://github.com/Itseez/opencv opencv-3.1.0
最新のopencvを取ってくる.クソ時間がかかるのでzipで落としてもいいかも$ cd opencv-3.1.0
$ mkdir build
$ cd build
$ git clone --depth 1 https://github.com/Itseez/opencv_contrib.git
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=opencv_contrib/modules ..
$ make -j $(nproc)
クソみたいに時間がかかるのでトルストイでも読んで待とう$ mkdir build
$ cd build
$ git clone --depth 1 https://github.com/Itseez/opencv_contrib.git
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=opencv_contrib/modules ..
$ make -j $(nproc)
macbook airに入れたウチのubuntuだとメモリ不足でエラーが起こったよ。たぶんスワップ領域を拡張すればいいんだろうけどそれはめんどいので、根気よくmakeを繰り返すと最後までコンパイルできたよ。
$ sudo make install
$ sudo ldconfig
$ sudo ldconfig
pythonでopencv3.1を使えるようにするためにはこんなふうにする↓
$ sudo cp ~/opencv-3.1.0/build/lib/cv2.so /usr/local/lib/python2.7/dist-packages/cv2.so
つまり、build/lib以下に作成されたcv2.soを、/usr/local/lib/python2.7/dist-packages/以下にコピーするだけ