組込みソフト |
OpenCVが使えない 2020/11/10 |
画像処理をPythonでやってみようとOpenCVをインストールしました。Pythonは3.Xです。pipを使えば簡単にインストールできます。
$pip3 install opencv-python
これで完了です。 早速Pythonでプログラムを書いてみると、 import cv2 でエラーが発生。 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python3.7/dist-packages/cv2/__init__.py", line 3, in <module> from .cv2 import * ImportError: /usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8 OpenCVが使えない!一丁目目一番地でエラー発生です。これってよくある不具合のようです。対策方法がネットで紹介されています。しかし、自分の環境では解決しませんでした。Visual Studio Codeでバージョンアップしたら動かなくなった!というのを思い出しOpenCVが使えないの現状と違うバージョンをいれたら解決しないだろうか?ということで、まずはOpenCVのアンインストール。 $pip3 uninstall opencv-python Uninstalling opencv-python-4.1.1.26: Would remove: /usr/local/lib/python3.7/dist-packages/cv2/* /usr/local/lib/python3.7/dist-packages/opencv_python-4.1.1.26.dist-info/* Proceed (y/n)? OpenCVのバージョンは4.1.1.26:です。yをキーインしてアンインストールします。 opencv-pythonはバージョンを指定してインストールできます。バージョンを調べるには存在しないバージョン0.0にします。 $pip3 install opencv-python==0.0 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Collecting opencv-python==0.0 Could not find a version that satisfies the requirement opencv-python==0.0 (from versions: 3.4.2.16, 3.4.2.17, 3.4.3.18, 3.4.4.19, 3.4.6.27, 3.4.7.28, 3.4.10.37, 3.4.11.39, 3.4.11.41, 3.4.11.43, 3.4.11.45, 4.0.1.24, 4.1.0.25, 4.1.1.26, 4.3.0.38, 4.4.0.40, 4.4.0.42, 4.4.0.44, 4.4.0.46) No matching distribution found for opencv-python==0.0 たくさんあります。4.1.1.26の1つ前のバージョンでは正常に動いていたであろう。という根拠に乏しい選択で4.1.0.25でやってみました。 $pip3 install opencv-python==4.1.0.25 import cv2でエラーが出なくなりました。 OSは最新版にしています。しかし、残念ながらエラーの出るOpenCVがインストールされてしまっているようです。この不具合は2019年からあったようです。 |