树莓派安装OpenCV那些事

    技术2022-07-10  167

    安装OpenCV再出新招!

    —使用pip安装的bug

    现在在树莓派4代中我们一般都会使用pip即可安装OpenCV,也就是:

    pip3 install opencv-python

    然鹅很多朋友在树莓派上使用pip安装OpenCV时会有如下问题:

    >>> import cv2 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/pi/cv2/__init__.py", line 3, in <module> from .cv2 import * ImportError: /home/pi/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8

    上面这些看不懂不要紧,只需要关注最下方:

    ImportError:/home/pi/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so:undefinedsymbol:__atomic_fetch_add_8

    是否有这样的一个提示即可,如果有那么你就来对地方了!

    通过网络上的解决方案只能解决在命令行下的问题,无法解决在自带IDE中的加载错误问题。

    寻找了多个外国论坛后偶然间找到了一个解决方案:

    pip3 install opencv-contrib-python==4.1.0.25

    也就是安装一个OpenCV高级包即可

    那么具体Opencv-contrib-python与opencv-python有何不同?

    在pypi中解释到:

    run pip install opencv-python if you need only main modules run pip install opencv-contrib-python if you need both main and contrib modules (check extra modules listing from OpenCV documentation)

    opencv-python 是只包含了主要模块的包

    opencv-contrib-python包含了主要模块以及扩展模块,扩展模块主要是包含了一些带专利的收费算法(如shift特征检测)以及一些在测试的新的算法(稳定后会合并到主要模块)。

    简单来讲就是opencv-contrib-python多了些内容,恰好问题是由于最新版OpenCV引起的,所以只需要安装指定的低版本即可。

    我的运行环境是树莓派4代4G版本,系统是2020-05-27的官方系统。

    欢迎各位一起交流哦!

    初次见面,喜欢的朋友可以多多关注。

    Processed: 0.009, SQL: 9