読者です 読者をやめる 読者になる 読者になる

可変ブログ

色々メモとか。とりあえず自分が分かるように。その後、なるべく人が見て分かるように。可変。

UbuntuにOpenCV3.2とcontribをインストールする。

まとめはしましたが、まだ試してみていないのでハマる箇所とか抜けがあるかもしれません。


環境



流れ

  • Ubuntuのパッケージを最新にする。
  • gitとCmakeをインストールする。
  • 依存関係をインストールする。
  • OpenCVのソースとcontribのソースをダウンロードする。
  • Cmakeを使って自分の環境に合ったソースを生成する。
  • ソースをビルドする。
  • ビルドしてできたバイナリとヘッダを適切な場所に配置する。
  • 配置したバイナリとヘッダのパスを通す。



Ubuntuのパッケージを最新にする。

書きコマンドでUbuntuに入っているパッケージを最新にします。

sudo apt-get update
sudo apt-get upgrade



gitとCmakeをインストールする。

githubからソースをダウンロードするgitと、自分の環境に合ったソースを生成するCmakeをインストールします。

sudo apt-get install git
sudo apt-get install cmake



依存関係をインストールする。

OpenCVのビルドに必要なライブラリなどをインストールします。
何が必要でどれをインストールしたらいいかは、OpenCVのドキュメントのチュートリアルUbuntuのヘルプに書いてあります。
2つのURLで書いてあることが違うのですがどっちを信用すればいいかは分かりません。
他にも人によって若干違う(?)ような感じで、みなさんどこを参考にしているのでしょうか。違いは何なんですかね。
今回はOpenCVのドキュメントに従ってみます。

【参考URL】
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

1行目2行目は必須。3行目はオプションみたいです。

ちなみにUbuntuのヘルプに従う場合は以下。-qqはエラー以外を表示しないというオプションです。

sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg cmake qt5-default checkinstall
||<  
参考にさせていただた記事に従うと以下になります。
>||
sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip



ソースをダウンロードする。

【参考URL】

インストールしたgitを使ってOpenCVのソースをダウンロードします。
ダウンロードする場所はどこでもいいのですが、今回はホーム直下にgithubというディレクトリを作ってその中にダウンロードします。
下記のコマンドでホームに移動してgithubというディレクトリを作成します

cd ~
mkdir github

できたディレクトリに移動してOpenCVのソースとcontribのソースをダウンロードする。

cd github
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

ソースのダウンロードはgitを使わなくても公式サイトからダウンロードしたり、githubのリリースのところからダウンロードしてもたぶん大丈夫です。
違いは、gitは最新バージョンで、公式サイトやgithubのリリースのところは安定バージョンがダウンロードできるってだけだと思います。
ダウンロード速度は公式サイトやgithubのリリースところからダウンロードしたほうが速いっぽいです。


Cmakeを使って自分の環境に合ったソースを生成する。

【参考URL】

まずダウンロードしたソースのディレクトリに移動してビルド用のディレクトリを作り、さらにそのディレクトリに移動します。

cd opencv
mkdir build
cd build

次に、Cmakeを使って自分の環境に合ったソースを生成します。

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/github/opencv_contrib/modules ..

一つ目のオプションはリリースモードを選択しています。
二つ目のオプションはインストールする場所を選択しています。
三つ目のオプションはOpenCVのcontribの場所を指定しています。gitでダウンロードしたopencv_contribの中のmodulesディレクトリを指定しましょう。
他にも必要ならば『-D WITH_CUDA=ON』や『-D WITH_TBB=ON』『-D WITH_FFMPEG=ON』などを追加してください。
何が設定できるかはCMakeLists.txtを見ればいいっぽいです。


ソースをビルドする。

make -j $(nproc)



ビルドしてできたバイナリとヘッダを適切な場所に配置する。

このコマンドでビルドされたバイナリとヘッダが共有ライブラリディレクトリにコピーされます。(たぶん)

sudo make install



配置したバイナリとヘッダを反映させる。

共有ライブラリにコピーされただけでは反映されないので、
このコマンドで共有ライブラリにコピーされたバイナリとヘッダを反映します。(たぶん)

sudo ldconfig



最後に

これで、OpenCVが使えるようになったはずです。
PythonC++で試してみましょう。

また、この記事に書いてあること以外に、
CMakeを使う前にこのコマンドを入力しないとエラーがでるかもしれないとか、

export PYTHON_INCLUDE_DIRS="/usr/include/python2.7"
export PYTHON_LIBRARYS="/usr/lib/x86_64-linux-gnu/libpython2.7.so"

最後に以下のコマンドが必要かもしれないと、参考にさせていただいた記事にありました。
エラーが出てしまった人は試してみてください。

sudo cp ~/opencv-3.1.0/build/lib/cv2.so /usr/local/lib/python2.7/site-packages/
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'

ちなみに、OpenCVを使うために必要なものは make install で共有ライブラリにコピーされたはずなので、
gitでダウンロードしたソース(つまりこの記事の中でいうと、githubディレクトリの中身)は削除しても大丈夫なはずです。(たぶん)
また、アンインストールの方法は共有ライブラリにコピーされたバイナリとヘッダを削除するだけ?なのかな?


UbuntuにOpenCVをパッケージからapt-getを使ってインストールする。

この方法でインストールされるOpenCVは最新バージョンではないです。


環境



流れ



Ubuntuのパッケージを最新にする。

sudo apt-get update
sudo apt-get upgrade



apt-getでOpenCVをインストールする。

sudo apt-get install libopencv-dev



C++関連URLの個人的なまとめ。

増えてきたら個別に分ける。


C++の日本語リファレンス

WindowsのIPやプロキシ設定を変更するバッチファイルの作り方。

環境



流れ

  • 変更するコマンドをtxtで保存。
  • 拡張子をbatに変更。
  • 管理者権限で実行。



いろんなURLの個人的なまとめ。

増えてきたら個別に分ける。


Ubuntu関連URLの個人的なまとめ。

増えてきたら個別に分けます。


proxy設定のまとめ

dns name server設定

baseよりinterfaceに記述したほうがいい?
いろいろな方法があっていまいちどれが正しいのかわからない。


ライブメディアを使ってUSBにubuntu14.04をインストールする。

 Win10にOpenCV3.2を導入します。基本的に導入方法はどのバージョンでも同じだと思います。


環境

  • Win10
  • ubuntu14.04



流れ



USBメモリーを2本用意する。

1本はライブメディア用なので容量はそんなになくて大丈夫です。
もう2本目はUbuntuがインストールされてそこでいろいろ作業するようになるのでそれなりに容量のあるものを用意してください。


UbuntuのISOをダウンロードする。

ここから。
Ubuntu 14.04 LTS 日本語 Remix リリース | Ubuntu Japanese Team


Universal USB Installerをダウンロードする。

ここか、
Universal USB Installer 1.9.7.4 - ダウンロード
ここから。
Universal USB Installer - Easy as 1 2 3 | USB Pen Drive Linux
適当なことろにダウンロードして解凍する。


Universal USB Installerを使ってUbuntuのISOを1本目のUSBに焼いてライブメディアを作る。

1本目のUSBメモリFAT32形式でフォーマットしておきます。
そうしたら、ダウンロードしたUniversal USB Installerを起動してOSとISOとメディア(フォーマットした1本目のUSBメモリ)を選択して書き込み開始する。

1本目のUSBを使ってブートして2本目のUSBにUbuntuをインストールする。

書き込みが終わったら、パソコンをシャットダウンしてBIOSからライブメディアをブートします。
2本目のUSBを挿します。必要ならGPartedを起動、パーティションを分けます。
パーティションの作り方は、右クリックからアンマウントして削除して新規で作ります。
Winで読めるように共通の領域を作るならFAT32形式のパーティションを左詰めで作ります。
残りはUbuntu用にext4でフォーマット。
必要ならスワップ領域も作る。(メモリが足りなくなった時に仮想メモリとして作用する領域。通常PCの搭載メモリと同量かその倍のサイズにする。)
パーティションの分割が終わったらUbuntuインストーラを起動します。
インストールの種類でそれ以外を選択。
パーティションの初期化にチェック。マウントポイントは『/』で。
ブートローダをインストールするデバイスで、USBメモリを選びます。
あとはインストーラの指示にしたがってインストール