1
2

RaspberryPi 3BへのOpenCVのインストール

Last updated at Posted at 2023-10-31

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コマンドを使ってしまっていましたが、環境に応じて、モジュールをインストールしないと、うまくモジュールをインポートできないのだと、改めて思い知らされました。

1
2
1

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
1
2