ラズパイにpipでOpenCVをインストールする方法

 

ラズパイへのOpenCVのインストールですが結構つまづきやすいポイントです。

 

PythonでOpenCVを使うための方法は2つ。

  1. ソースをダウンロードしてビルドする
  2. コンパイル済みのものをpipでインストールする

 

2の方が圧倒的に楽です。

 

ラズパイの本を読んでいると、Githubからソースコードを落としてきてビルドする方法が紹介されていたりしますが、難しいですし時間がかかります。

 

この記事では、OpenCVをpipでインストールする方法をご紹介します。

 

  • Raspberry Pi 3 model B+
  • Kuman カメラモジュール Raspberry Pi用

 

[toc]

はじめに

 

OpenCVのインストール方法ですが、以下のサイトがまとまっていて良いです。

https://www.pyimagesearch.com/2018/09/19/pip-install-opencv/

 

要約すると、

 

  1. 昔はソースコードからOpenCVをビルドするのが普通だった
  2. 最近になってpip(PyPi/PiWheels)でインストールすることができるようになった
  3. PyPi/PiWheelsのOpenCVは特許化されているもの(SIFT,SURF…)は含まれていない
  4. opencv-pythonopencv-contrib-pythonがあるが、後者の方が色々含まれているから後者をインストールしよう
  5. システムに直接入れるのではなく、仮想環境を作ってから入れよう

 

ちなみに、OpenCVはPywheelsという以下のサイトにwheelsというコンパイルされたバイナリの形で提供されている。

https://pypi.org/project/opencv-contrib-python/

pipはデフォルトでこのサイトを探してくれるので、難しい設定をしなくてもすぐにOpenCVが使えるってわけだ。

 

では具体的な手順を見ていく。

 

設定方法

 

ラズパイ用のパッケージのインストール

 

sudo apt-get install libhdf5-dev libhdf5-serial-dev
sudo apt-get install libqtwebkit4 libqt4-test

 

記事で紹介されているのは上のパッケージだけだが、私のラズパイでは以下のパッケージも入れる必要があった。

sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev

 

pipを入れる

 

wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py 

 

仮想環境を作る

 

virtualenvとvirtualenvwrapperをインストールする。virtualenvwrapperをインストールすると仮想環境の管理や切り替えが楽になるらしい。

sudo pip install virtualenv virtualenvwrapper

 

パスを通すために、.profileに以下を追加。

nano ~/.profile 

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

 

有効にする。

source .profile

 

cvという名前(名前は何でも良い)の仮想環境を作成し、workonで仮想環境をアクティベートする。

mkvirtualenv cv -p python3

workon cv

 

opencvのインストール。(これだけ)

pip install opencv-contrib-python

 

正しくインストールできたか確認。

(cv) pi@raspberrypi:~/tmp $ python
Python 3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.4'

 

これで好きなように画像処理のコードがかける!やったね。

 

おわり。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog