RaspberryPi 3B(os:Raspbian Release11)とPi Cameraを使って、画像認識をさせたいと考え、OpenCVをインストールすることにした。
色々とネットでインストール方法を探して、試したが、なぜか、Numpyがインポートできないようなメッセージが出た、OpenCVのインポートができない。
まずは、うまくいかなかったインストール方法(「import cv2」とOpenCVをインポートしたときに出たエラーメッセージなど)を示します。
■うまくいかなかったインストール
最初に、OpenCVに必要なライブラリをインストール
$ sudo apt-get install -y libatlas-base-dev
numpyモジュールもバージョンが低いとエラーになりやすいとあったので、バージョンアップしておく
$ pip3 install numpy --upgrade
最後にopencv-pythonをインストールする
pip3 install opencv-python
これで、一応、エラーなくすべてインストールは完了した。
$ python3
として、Python対話モードを起動して、Opencvをインポートできるか試してみる。
>>> import cv2
Traceback (most recent call last):
File "/usr/local/lib/python3.9/dist-packages/numpy/core/__init__.py", Line 24, in <module> from . import multiarray
File "/usr/local/lib/python3.9/dist-packages/numpy/core/multiarray.py", Line 10, in <module> from . import overrides
File "/usr/local/lib/python3.9/dist-packages/numpy/core/overrides.py", Line 8, in <module> from . import numpy.core._multiarray_umath import (
ImportError: Libopenblas.so.0: cannot open shared object file: No such file or directory
・
・
・
と続く
で、よくよく考えてみる。Raspbianには、Pythonはもともとインストールされている。Raspbianは、apt-getを使っている。pipを使うと、別のところにインストールされる。パスが通ってないのか?
そのあたりもいろいろと調べたが、解決しません。
で、pipでインストールした、OPencvとnumpyをアンインストールしました。
$ pip3 uninstall numpy
$ pip3 uninstall opencv-python
普通に、apt-getでインストールモジュールのアップデータを行う。
$ sudo apt-get update
$ sudo apt-get upgrade
そして、apt-getでOpenCVをインストールする。
$ sudo apt-get install python3-opencv
$ sudo apt-get install python3-numpy
Pythonの対話モードで試してみる
$ python
ちょっと省略
>>> import cv2
>>>
とエラーがでない。うまくインポートできたみたいだ。バージョンを表示させてみる。
>>> print(cv2.__version)
4.5.1
>>>
やった!。うまくいきました。
Windowsとかで、Pythonを使っていたので、ついついpipコマンドを使ってしまっていましたが、環境に応じて、モジュールをインストールしないと、うまくモジュールをインポートできないのだと、改めて思い知らされました。