Raspberry Pi + Python 3 に OpenCV 3 をなるべく簡単にインストールする


はじめに

Raspberry Pi で Python から OpenCV を使えるようにする方法をググると山のようにヒットする。

それらをよく読むと、大体は次のどちらかになっている。

Python 3 で OpenCV 3/4 を簡単に使えるようにする方法はなかなか見つからない。


  • Python 2.x に OpenCV とモジュールをインストールする。

    下の 2 行を叩いてお終い。

    $ sudo apt-get install libopencv-dev

    $ sudo apt-get install python-opencv


  • Python 3.x に OpenCV をコンパイルする。

    apt-get で色々インストールした挙句、コンパイルに数時間かかるらしい。


散々探したところ、apt-get と pip3 だけでインストールできる方法が見つかったのでメモしておく。

一次ソースは多分ここ


手順


前提

次の環境で確認しています。


  • Raspberry Pi 3 model B+ (他のモデルでも大丈夫なはず)。

  • OS は、Rasbian Stretch。

  • Python 3.5.3。


ライブラリのインストール

OpenCV が依存しているライブラリを事前にインストールします。

$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-100

$ sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
$ sudo apt-get install libatlas-base-dev
$ sudo apt-get install libjasper-dev


OpenCV のインストール

pip3 で OpenCV をインストールします。

ダウンロードが 100% に到達しないとハッシュエラーになる。そうなったらやり直します。

$ sudo pip3 --default-timeout=1000 install opencv-python

インストールが完了したら、利用できるか確認します。

カレントディレクトリに test.jpg を置いておき、以下の通り実行して canny.jpg ができたら成功です。

$ python3

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'
>>> bgr = cv2.imread('./test.jpg', cv2.IMREAD_COLOR)
>>> gray = cv2.cvtColor(bgr, cv2.COLOR_BGR2GRAY)
>>> canny = cv2.Canny(gray, 200, 50)
>>> cv2.imwrite('./canny.jpg', canny)
True


おわりに

最初に見つけたのをやらずに、根気よく調べたおかげで却って手間が省けました。