OpenCVの入れ直し
入れたOpenCVで某を動かしたくなったのですが, 安定版3.4.1が対応しておらず虚無になったので入れ直しました. 対応バージョンはちゃんと調べましょう.(自戒).
いつも通り, 公式ページを参考にしました. OpenCV: Installation in Linux
古いもののアンインストール
これは本当に適当に消しました. 詳しい方にコメントを欲しいところです.
cmakeとかmakeをしたopencv/build/
の中で
$ sudo make install $ sudo make uninstall
を実行します. installの方は, 念の為です.
後は片っ端から消しました.
まずはmake uninstallしたソースディレクトリを丸ごと. 次に, 残骸を.
自分は/usr/local
をインストール先に指定していたので, /usr/local/lib
とusr/local/include
内のopencvが付くものを全て消しました.
環境とか
OS: Ubuntu 16.04.4 LTS
入れるもの: OpenCV (Cutting-edge)
インストール
必要なものを突っ込む
もし入っていない場合は突っ込みます. 自分は安定版を入れるときに入っているのですっ飛ばしました.
$ sudo apt-get install build-essential $ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
その他オプションのライブラリとかの情報は下記のページに雑にまとめています.
ソースコードを手に入れる
開発中の最新版を突っ込みます.
GitHub - opencv/opencv: Open Source Computer Vision Library
自分は$HOME/lib
以下にcloneしました.
$ git clone https://github.com/opencv/opencv.git
新しい拡張機能を体験したい場合は以下も.
GitHub - opencv/opencv_contrib: Repository for OpenCV's extra modules
こちらのclone先は, cmakeの際にpathを指定できるようなので自由みたいです. 今回私は同じ場所に入れています.
$ git clone https://github.com/opencv/opencv_contrib.git
cmakeする
/opencv
に入り, buildという名前のディレクトリを作って中に入ります.
$ cd opencv $ mkdir build $ cd build
cmakeします.
$ cmake .. -DOPENCV_EXTRA_MODULES_PATH=$HOME/lib/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX=/usr/local
拡張機能を入れていない場合は, 1つ目のオプションは不要です.
makeする
makeします.
$ make -j8
私の環境では15分程度でした. そして締めのインストール.
$ sudo make install
終了, 解散です.
動作確認
いつものです. 適当な場所に画像を置きます. 同じ場所にtest.cppとかいうC++ファイルを生成します.
#include <opencv2/core.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgcodecs.hpp> int main() { cv::Mat m = cv::imread("sample.png", 1); cv::namedWindow("sample", cv::WINDOW_AUTOSIZE); cv::imshow("sample", m); cv::waitKey(0); cv::destroyAllWindows(); return 0; }
画像ファイル名は任意です.
コンパイルする前にパスを通します.
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
~/.bashrcに書いてしまってもいいかもしれません.
コンパイルします.
$ g++ test.cpp -std=c++11 -lopencv_core -lopencv_imgcodecs -lopencv_highgui
C++11を指定しないと怒られてしまうので気をつけましょう.
実行します.
$ ./a.out
画像が表示されればOkです.