72
62

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OpenCVの本当に動くインストール手順

Last updated at Posted at 2018-12-21

公式を含め、ネット上のインストール手順を見てるとどこかしら動かなくてハマったり、build中にエラー出たりして、途方に暮れてしまうので、自分できちんとチェックして動くものを手順書として作りました。

補償範囲

  • OpenCVが単体で動く。(pythonのimport cv2は考慮外)
    • opencv_tranincascadeopencv_createsamplesが動く

インストール手順

CentOS

一番シンプルな構成でいい、もしくはopencv_traincascadeを使いたいだけであれば、CentOSが一番楽だと思います。
依存パッケージインストールしてmakeしてinstallするという普通の流れで引っかかることなくインストールが完了するので

使用するOS Version: 7.5

# root権限
su -

# 依存パッケージをインストールする
yum install -y git gcc bzip2 bzip2-devel openssl openssl-devel readline readline-devel sqlite-devel
yum install -y cmake libjpeg-devel libtiff-devel libpng-devel jasper-devel
yum install -y mesa-libGL-devel libXt-devel libgphoto2-devel nasm libtheora-devel
yum install -y autoconf automake gcc-c++ libtool yasm openal-devel blas blas-devel atlas atlas-devel lapack lapack-devel
yum install -y tbb-devel

# opencvとopencv_contribのソースをgithubからダウンロードする(zipに圧縮しているものでも可)
#  masterにチェックアウトしているものも見かけるけど、それだと開発中のバージョンになるので、タグから最新のバージョンを指定する
cd /usr/local/src
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout -b 3.4.3 refs/tags/3.4.3
cd ../opencv/
git checkout -b 3.4.3 refs/tags/3.4.3

# ビルドしてインストールする
mkdir build
cd build
# cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules ..
make -j7
make install
echo /usr/local/lib > /etc/ld.so.conf.d/opencv.conf
ldconfig -v

# きちんとインストールされていることを確認する
#   opencvっていうコマンドはないので注意
opencv_version

Ubuntu

jasper-devel がインストールできない問題をはじめ、OpenCVに関してはインストール時のハマりどころがたくさんあります。
自分もどちらかと言うとUbuntu使いなのですが、ことOpenCVに関してはおすすめできない。
今回はMinimumで必要なものを入れてますが、使いたい機能次第では、必要なパッケージが入っているリポジトリを追加する必要があるかもしれないので、探り探り対応してください

使用するOS Version: 18.04


# root権限
sudo su -

apt-get update
apt-get upgrade

# libjasper-devを入れるためにリポジトリを追加
add-apt-repository "deb http://security.ubuntu.com/ubuntu bionic-security main"

# 依存パッケージをインストールする
apt-get -y install build-essential checkinstall cmake unzip pkg-config yasm
apt-get -y install git gfortran python3-dev
apt-get -y install libjpeg8-dev libjasper-dev libpng12-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libv4l-dev
apt-get -y install libjpeg-dev libpng-dev libtiff-dev libtbb-dev
apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libatlas-base-dev libxvidcore-dev libx264-dev libgtk-3-dev

# opencvとopencv_contribのソースをgithubからダウンロードする(zipに圧縮しているものでも可)
#  masterにチェックアウトしているものも見かけるけど、それだと開発中のバージョンになるので、タグから最新のバージョンを指定する
cd /usr/local/src
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout -b 3.4.3 refs/tags/3.4.3
cd ../opencv/
git checkout -b 3.4.3 refs/tags/3.4.3

# ビルドしてインストールする
mkdir build
cd build
# cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules ..
make -j7
make install
echo /usr/local/lib > /etc/ld.so.conf.d/opencv.conf
ldconfig -v

# きちんとインストールされていることを確認する
#   opencvっていうコマンドはないので注意
opencv_version

Appendix

OpenCVをアンインストールしたいとき

cd /usr/local/src/opencv/build
make uninstall
rm -rf /usr/local/lib/opencv*
rm -rf /usr/local/include/opencv*

バージョンに関して

3.4.4だと病的なまでに学習途中でコケたので3.4.3にドキュメントに記載するバージョンを変更しました。
3.4.3だと動くのは確認しました。
何が原因かはコードを読み解いてないのでわかりません。

72
62
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
72
62

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?