はじめに
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
おわりに
最初に見つけたのをやらずに、根気よく調べたおかげで却って手間が省けました。