LoginSignup
12
13

More than 5 years have passed since last update.

Raspberry Pi で OpenCV 4

Last updated at Posted at 2019-03-22

Raspberry Pi に OpenCV 4.x をインストール

元ネタには virtualenv で複数のPythonバージョンでの使い分けも記述あり

準備

インストールを始める前にファイルシステムを拡張
$ sudo raspi-config

Advanced Options から Expand Filesystem を実行してリブート
df -h コマンドでファイルシステムが拡張されているのを確認

OS環境を最新に
$ sudo apt-get update 
$ sudo apt-get upgrade
CMake環境をインストール
$ sudo apt-get install build-essential cmake unzip pkg-config
イメージファイル用ライブラリをインストール
$ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
ビデオストリーム用ライブラリをインストール
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev 
$ sudo apt-get install libxvidcore-dev libx264-dev
画像表示用ライブラリをインストール
$ sudo apt-get install libgtk-3-dev 
$ sudo apt-get install libcanberra-gtk*
演算用ライブラリをインストール
$ sudo apt-get install libatlas-base-dev gfortran
Python3開発用ヘッダをインストール
$ sudo apt-get install python3-dev

OpenCVのインストール

ソースの取得
$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.0.1.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.0.1.zip
$ unzip opencv.zip
$ unzip opencv_contrib.zip
NumPyの準備
$ pip install numpy
cmakeでビルド準備
$ cd ~/opencv-4.0.1
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.0.1/modules \
    -D ENABLE_NEON=ON \
    -D ENABLE_VFPV3=ON \
    -D BUILD_TESTS=OFF \
    -D OPENCV_ENABLE_NONFREE=ON \
    -D INSTALL_PYTHON_EXAMPLES=OFF \
    -D BUILD_EXAMPLES=OFF ..

cmakeの結果に問題ないか確認

ビルド時にスワップメモリが不足するのを避けるため、一時的にスワップファイルを拡張
フラッシュメモリの劣化を防ぐため、ビルド後にもとのサイズに戻す

/etc/dphys-swapfile
CONF_SWAPSIZE=2048
スワップサービスの再起動
$ sudo /etc/init.d/dphys-swapfile stop 
$ sudo /etc/init.d/dphys-swapfile start
$ swapon
ビルド
$ make -j4
インストール
$ sudo make install
$ sudo ldconfig

スワップファイルのサイズを100Mに戻してサービスを再起動

インストールの確認

>>> import cv2
>>> cv2.__version__
'4.0.1'
>>> exit()

おまけにmatplotlibをインストール

$ pip install matplotlib
12
13
0

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
12
13