树莓派4b安装opencv遇到的一些问题以及解决

安装

opencv的安装方式主要有两种:

  1. pip安装:主要参考 树莓派极简安装OpenCv的方法步骤
  2. 编译安装:主要参考树莓派4B 安装opencv完整教程基于python3(各种错误解决)

编译安装时间过长,我本次用的还是第一种方法,但同样踩了一堆错误。现在提供给大家几处解决方法。

一、报错

> Traceback (most recent call last):   File "", line 1, in
> <module>   File
> "/usr/local/lib/python3.7/dist-packages/cv2/__init__.py", line 3, in
> <module>
>     from .cv2 import * ImportError: libjasper.so.1: cannot open shared object file: No such file or directory

类似此项的属于相关依赖没有下载全,比如这个例子里的libjasper.so.1,没记错应该sudo apt-get install libjasper-dev -y
下载相关依赖即可。
以此类推 看仔细自己报错内容,下载相关依赖即可,附上几条常用的:

sudo apt-get update
sudo apt-get install libhdf5-dev -y
sudo apt-get install libatlas-base-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libqt4-test -y
sudo apt-get install libqtgui4 -y
sudo apt-get install libhdf5-serial-dev -y
sudo apt install libqtgui4 -y
sudo apt install libqt4-test -y
sudo apt-get update

缺哪个下载哪个就行,这上面没有的直接搜也可搜到。

Traceback (most recent call last):
  File "", 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`

cv2.so这个错误据树莓派上安装Opencv遇到的小bug解决方法(该博客内有解决方案)此博客给出的解释是

发现github上面有官方的issue,里面说这个是一个bug, 难怪很多人抱怨安装不来opencv呢。

据此我找到了一个github地址,可能是原解决方案
opencv: undefined symbol: __atomic_fetch_add_8 #59

The workaround is:

pi@raspberrypi:~ $ LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1 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

即在终端加上这么一句话

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

上面的博客给出的解决方案和这个一样,不过他添加进了.bashrc文件中,避免每次启动都要输入这么一句话。

二、 解决效果

终端完美解决

树莓派4b安装opencv遇到的一些问题以及解决_第1张图片
树莓派4b安装opencv遇到的一些问题以及解决_第2张图片

待解决问题

树莓派自带的pythonIDE仍然报错

树莓派4b安装opencv遇到的一些问题以及解决_第3张图片

望各位大佬指正不足之处


  • 2020/2/13更新

解决上述问题

主要参考这篇文章在树莓派上安装基于python3的OpenCV

简而言之,在2019.11.17之后4.x.x的版本就会报上述错误

先卸载掉

sudo pip3 install opencv-python

再换上3.x.x的版本即可

解决方法由这篇文章提供ImportError: /usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8 #67

树莓派4b安装opencv遇到的一些问题以及解决_第4张图片

你可能感兴趣的:(树莓派4b安装opencv遇到的一些问题以及解决)