书接上文Sebastian Zhou:从零开始在树莓派上安装系统(无显示器和网线)​zhuanlan.zhihu.com关于树莓派上安装OpenCV的教程也有很多,但似乎都陷入了一个怪圈,一定要在树莓派上编译OpenCV的代码。实际上,python3(而不仅仅是python2)的OpenCV是可以在树莓派直接安装的。

绝大多数在树莓派上安装opencv的教程都时要编译的,安装下来动辄五六个小时还容易出错,“我认为这不cool”(笑)。我综合了几个不需要编译安装的中文资料和Google了相关内容之后,总结了相对简单的方法。

一. 换源

因为树莓派的默认源在国外,所以我们在更新系统的时候时出奇的慢,所以我们就要把相应的源换到国内,国内相对出名的源有清华源,科大源,豆瓣源等,我用的是清华源(不用科大源是因为有一次缺少依赖找不到,换成清华源就ok)

打开树莓派的Terminal

sudo nano /etc/apt/sources.list

将原来的内容用#注释,将下面的内容粘贴在最后

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib

deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib

Ctrl+O写入,Enter确认,Ctrl+X退出

sudo nano /etc/apt/sources.list.d/raspi.list

将原来的内容用#注释,将下面的内容粘贴在最后

deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

Ctrl+O写入,Enter确认,Ctrl+X退出

假如你的系统不是Buster,请将buster换成你系统的版本,参见清华大学的helpTsinghua Open Source Mirror​mirrors.tuna.tsinghua.edu.cn

二. 安装依赖

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install libhdf5-dev libhdf5-serial-dev

sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5

sudo apt-get install libatlas-base-dev

sudo apt-get install libjasper-dev

可能对于你的工作而言这些安装包不够全面,但这保证了OpenCV的基础运行。

三. 安装OpenCV

2019.11.19建议:

sudo pip3 install --no-cache-dir opencv-contrib-python==3.4.3.18

#安装opencv3而不是默认的opencv4

下载速度可能会相当的龟速。

假如你实在受不了这个速度,或者下载出错的话,并且具有最最基本的计算机知识的话。

在这里举个例子:

我把这个文件在浏览器当中下载好之后。

将鼠标放到VNC窗口的最上方,点击文件传输的那个图标

点击Send files...

选择刚才下载的文件。上传。这样这个文件就会出现在你的树莓派桌面上(见上上图)。

cd /home/pi/Desktop

sudo pip3 install opencv_contrib_python-3.4.3.18-cp37-cp37m-linux_armv7l.whl

文件名和下载的那个一样即可

sudo python3

>>> import cv2

>>> print(cv2.__version__)

3.4.3

大功告成

原方法:

这种方法目前在树莓派4上很可能有问题。

sudo pip install opencv-contrib-python#可能会出现下文错误2

安装完成,检查一下

sudo python3

运行python

>>> import cv2

>>> print(cv2.__version__)

4.1.1#原方法

大功告成

四. 可能的错误

1.

下载速度太慢。

解决方法:

查看下载链接,手动下载安装。

Download后面就是链接,复制到有梯子的电脑上的浏览器下载。然后参见上面2019.11.19推荐方法进行安装

2.

在2019.11.17,当import cv2之后

Traceback (most recent call last):

File "", line 1, in

File "/usr/local/lib/python3.7/dist-packages/cv2/__init__.py", line 3, in

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

解决方法(每一次启动python之前都需要这样):

sudo find / -type f -name ‘atom.so*’

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

之后再

>>> import cv2

>>> print(cv2.__version__)

4.1.1

假如你有相当的Linux知识,也可以通过虚拟环境解决,参见评论区第一条。

参考undefined symbol: __atomic_fetch_add_8​stackoverflow.com

3.

2019.10.23,当sudo pip install opencv-contrib-python之后,显示md5码校验错误。

解决方法:

sudo pip install --no-cache-dir opencv-contrib-python

#而不是

#sudo pip install opencv-contrib-python

参考Python packages hash not matching whilst installing using pip​stackoverflow.com

五. 后记

实际上,这种方法是通过pip安装非官方pre-built OpenCV软件包,它们不是http://OpenCV.org发布的官方OpenCV软件包。但这这并不意味着你需要因为它们不是官方的而感到不舒服,您只需要了解到它们没有得到http://OpenCV.org官方团队的直接认可和支持。(实际上这种方法也相当的不稳定,但pip比编译快了20倍,就将就着用)

实际上,使用pip安装是一种2018年下半年才实现的方法。这也就是为什么大部分教程仍然是使用编译安装。通过pip安装OpenCV比以往任何时候都容易。

但是对于某些项目,可能仍然需要完整的OpenCV安装,也就是编译安装,pip安装无法给你提供。

对于使用pip安装opencv,有两个安装包:opencv-python和opencv-contrib-python。区别在于,opencv-python只包含OpenCV库里的主要模块,而opencv-contrib-python包含主要模块和contrib模块,几乎包含了全部功能。

而且,不要同时安装opencv-python和opencv-contrib-python,你只需要选择其中一个。

参考:https://www.pyimagesearch.com/2018/09/19/pip-install-opencv/​www.pyimagesearch.comInstall OpenCV 4 on Raspberry Pi 4 and Raspbian Buster - PyImageSearch​www.pyimagesearch.com

树莓派安装python3替换python2_在树莓派上安装基于python3的OpenCV相关推荐

  1. pip安装deb_技术|如何在 Ubuntu 上安装 pip

    pip 是一个命令行工具,允许你安装 Python 编写的软件包. 学习如何在 Ubuntu 上安装 pip 以及如何使用它来安装 Python 应用程序. 有许多方法可以在 Ubuntu 上安装软件 ...

  2. apache mediawiki 安装_如何在CentOS 7上安装MediaWiki

    如果您想构建自己的wiki网站,可以使用MediaWiki轻松完成, MediaWiki是一个最初为WikiPedia创建的PHP开源应用程序. 由于为此应用程序开发的第三方扩展,其功能可以轻松扩展. ...

  3. Ubuntu16.04安装wineqq国际版教程Ubuntu上安装wine QQ

    转自:http://mt.sohu.com/20151210/n430726472.shtml 简述:Ubuntu16.04安装wineqq国际版教程Ubuntu上安装wine QQ国际版后如何定位好 ...

  4. 电脑端Android模拟器安装使用教程,如何在电脑上安装安卓软件

    电脑端Android模拟器安装使用教程,如何在电脑上安装安卓软件 如今说到什么智能手机最火,那很多人肯定会说android系统的手机.如果你还没有Android手机,又想买一部试试,可是价格都不便宜, ...

  5. 树莓派从入门到放弃之Docker上安装Jellyfin视频服务器

    一.Docker上安装Jellyfin 1.Jellyfin官网和Docker镜像站 2.VNC连接树莓派 1.拉取服务器镜像 在终端键入:sudo docker pull jellyfin/jell ...

  6. nuc安装linux系统,在 Intel NUC 上安装 Linux | Linux 中国

    在上周,我买了一台 InteL NUC.虽然它是如此之小,但它与成熟的桌面型电脑差别甚小.实际上,大部分的基于 Linux 的微型 PC 都是基于 Intel NUC 构建的. 我买了第 8 代 Co ...

  7. opencv 安装_如何在 CentOS 8 上安装 OpenCV

    本文最先发表在: 如何在 CentOS 8 上安装 OpenCV​www.itcoder.tech OpenCV(Open Source Computer Vision Library) 是一个开源的 ...

  8. alpine linux安装ftp,如何在Alpine Linux上安装GLPK?

    在Alpine Linux上安装swiglpk包失败,并出现以下跟踪:Collecting swiglpk>=1.2.14; extra == "all" (from cam ...

  9. mac10.12 安装mysql_在mac os10.12上安装mysql5.7.18

    会提示 command not found, 然后输入 alias mysql=/usr/local/mysql/bin/mysql alias mysqladmin=/usr/local/mysql ...

最新文章

  1. Git学习记录(一)
  2. Jquery v1.3.2 与v1.4.2在andSelf()函数方面的区别
  3. swoole的process模块创建和使用子进程
  4. e480换高分屏_全高清都不够用?是时候趁着双11上飞利浦的高分屏了
  5. 你真的了解Java中的三目运算符吗
  6. 广度优先遍历类似于二叉树的_二叉树的各种遍历方法的简单解释
  7. java 防止表单重复提交
  8. MySQL 修改视图
  9. C 语言取整的几种方法6,C语言有以下几种取整方法:
  10. 【Java基础学习笔记】- Day11 - 第四章 引用类型用法总结
  11. URAL 1233 Amusing Numbers 好题
  12. 解决go get i/o timeout的问题
  13. 寒假回归篇——C语言学习感悟2022.1.16
  14. C++ 串口通信程序
  15. JAVA8的ConcurrentHashMap为什么放弃了分段锁,有什么问题吗,如果你来设计,你如何 设计。
  16. 线性插值(双线性)(三线性)
  17. Solr基础理论【倒排索引,模糊查询】
  18. Clion新UI体验,墙裂推荐,用起来真的好爽啊!
  19. IOS开发中@2x图片等适应不同分辨率手机
  20. Kubernetes 单节点安装Clickhouse

热门文章

  1. Web开发人员的10个数据库优化最佳实践
  2. 化合物在高通量筛选中的作用
  3. iframe 跨越访问_iframe跨域访问
  4. 「Java面试题精华集」Java基础知识篇(2022最新版)附PDF版
  5. docker和守护进程重启命令
  6. java lfu缓存,java实现LFU算法
  7. 将指定格式的文字进行格式替换更换字体颜色、字号、字形等
  8. 【PS】浅谈PS颜色模式-CMYK模式
  9. 跳一跳python_原来微信《跳一跳》也可以用Python玩~
  10. 小米无线路由器 + u盘