73
71

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.

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

Last updated at Posted at 2019-07-05

はじめに

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

おわりに

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

73
71
7

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
73
71

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?