现在在树莓派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的官方系统。
欢迎各位一起交流哦!
初次见面,喜欢的朋友可以多多关注。