OpenCVのインストール&設定

OpenCVとは、画像や動画を処理、解析したりするのに必要なライブラリィです。

OpenCVをPythonで使う場合は、以下でインポートして使用します。

import cv2

ただ、importできるまでに多くのエラーが出て、悪戦苦闘したので一連の作業をメモとして残しておきます。

まずは、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

pip/pip3をインストールします。

$ sudo apt install python-pip python3-pip

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

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

インストールできたか確認します。

$ 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’
'3.4.4'

Python3でOpenCVのインポートエラーが出る場合の対策を行います。

ターミナルで以下を実行

$ LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1

次にviで編集

$ vi .bashrc
export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1 #追加

最後に以下で適用

$ source .bashrc

インストールできていることを確認します。

$ python3 Python 3.7.3 (default, Apr 3 2019, 05:39:12)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.1.1'

以上でインストールは完了です。

あと、追加で以下の設定を行いました。

Raspberry Pi Camera Module V2 は、そのままでは OS のビデオデバイス( /dev/video0 )として認識しません。OpenCVで処理させるためには、以下の手順を用いてビデオデバイスとして認識させておきます。

<手動で都度行う>
 $ sudo modprobe bcm2835-v4l2
 $ ls /dev/video* /dev/video0

<起動時の設定に追加>
 $ sudo nano /etc/modules
 (最下部に以下を追加)
 bcm2835-v4l2

 $ sudo reboot

もし AttributeError: module ‘cv2.cv2’ has no attribute ‘face’ というエラーが出たら、下記のコマンドを実行してインストールします。

$ sudo pip3 install opencv-contrib-python

とりあえず、ここまでやれば大丈夫だと思います…

Follow me!

“OpenCVのインストール&設定” への2件の返信

  1. お世話になります。
    OPENCVのインストールの件でエラーメッセージでアドバイスをいただき、実行しましたが現象はおなじです。
    エラーメッセージ。
    python 3.7.3 (default, Jan 22 2021, 20:04:44)
    [GCC 8.3.0] on linux
    Type “help”, “copyright”, “credits” or “license” for more information.
    >>> import cv2
    RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
    Traceback (most recent call last):
    File “”, line 1, in
    File “/usr/local/lib/python3.7/dist-packages/cv2/__init__.py”, line 5, in
    from .cv2 import *
    ImportError: numpy.core.multiarray failed to import
    >>> exit()

    1. NumPyをアップグレードしたけどエラーが消えてないですね。
      古いNumpyが入っていて、そちらが呼ばれている可能性はないでしょうか?

      ちなみに私の環境だと以下になっています。
      $ python3
      >>>import sys
      >>>sys.path
      [”, ‘/usr/lib/python37.zip’, ‘/usr/lib/python3.7’,
      ‘/usr/lib/python3.7/lib-dynload’,
      ‘/usr/local/lib/python3.7/dist-packages’,
      ‘/usr/lib/python3/dist-packages’]

      上から順番に検索されるので、古いバージョンが上にあるとそちらを優先するみたいです。

      以下サイトが参考になるかもしれません。
      https://qiita.com/kai0706/items/8169d01a83f63fc4a0bd

      以上、宜しくお願いいたします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA