开发板:树莓派4B
环境:树莓派官方环境:2022.04.04版本、python3.9、opencv4.5.1.48
首先将官方的源换为国内源,提高下载速度。这里选择的是清华的源。
终端输入
sudo nano /etc/apt/sources.list
换源时,要注意版本号!!,网上很多都是 buster 和 stretch ,它们对应着不同版本的 debian 。这里可根据官方sources.list文件内的描述进行判断采用哪种。
如,我所使用的树莓派为:
deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
这里采用的是 bullseye ,因此换源时需要把版本对应好。
然后,注释掉官方源,添加清华源,其sources.list文件更改如下:
#deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main contrib non-free rpi
同理,在终端中输入:sudo nano /etc/apt/sources.list.d/raspi.list
注释掉官方源,并在raspi.list 文件内容后添加:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main
其文件内容如下:
#deb http://archive.raspberrypi.org/debian/ bullseye main
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ bullseye main
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main
然后,更新库文件,终端输入:
sudo apt-get update
sudo apt-get upgrade
等待软件更新。。。。
这里参考了 https://www.jianshu.com/p/b75936848a27 中所采用的安装内容
#安装几种常见格式的图像操作的包,方便我们能从硬盘上读取不同格式的图像
sudo apt-get install libjpeg-dev
sudo apt-get install libtiff5-dev
sudo apt-get install libjasper-dev
sudo apt-get install libpng12-dev
#同样的,我们也需要视频操作的包
sudo apt-get install libavcodec-dev
sudo apt-get install libavformat-dev
sudo apt-get install libswscale-dev
sudo apt-get install libv4l-dev
sudo apt-get install libgtk2.0-dev
#优化函数包
sudo apt-get install libatlas-base-dev gfortran
如果安装遇到依赖错误,可指定安装所需要的环境包。
网上有很多种安装OpenCV的方法,但都太老了(基本都试过。。)。有通过下载源码进行编译的,但编译过程中会遇到一堆报错,对小白很不友好。
这里介绍下本人所尝试的两种简单的方法:
采用上述命令可直接进行安装opencv
验证是否安装成功:
终端输入:python
进入到 python 命令行
pi@raspberrypi:~ $ python3
Python 3.9.2 (default, Mar 12 2021, 04:06:34)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
我的python版本为 3.9.2
然后,再输入 import cv2
引入 cv 2模块
再输入print(cv2.__version__)
查询 opencv 版本号
显示如下:
>>> print(cv2.__version__)
4.5.1
我安装的版本是4.5.1.48版本
但这种安装方法,在做人脸识别项目时,没找到opencv提供的库文件。。。各种查询方法也都试了。。。。
之前这种方法也试过,但是下载时各种断流,非常恼火。
但在网上找到了一种方法,采用阿里云的源来进行安装。
参考连接:https://wenku.baidu.com/view/a44889db920ef12d2af90242a8956bec0975a5a1.html
步骤如下:
pip3 install opencv-python==4.5.1.48 -i https://mirrors.aliyun.com/pypi/simple
这里的opencv-python==4.5.1.48
是指指定了opencv的安装版本。
这里是为了和电脑中的版本一致,可根据具体情况进行替换。
pip3 install opencv-contrib-python==4.5.1.48 -i https://mirrors.aliyun.com/pypi/simple
同理,opencv-contrib-python==4.5.1.48
为指定版本号。
这里的两个版本号需要一致!!!
至此,opencv已经安装好了,可采用上述的验证方法进行验证。
对于opencv安装路径的获取,可采用如下代码:
sudo find / -iname cv2
查找cv2的存放路径。如:haarcascade_frontalface_default.xml
文件在其cv2目录下的data文件夹里。
在引用cv2模块后,运行程序,报错:ImportError: numpy.core.multiarray failed to import
,一般是因为 numpy 依赖包的版本过低
解决方法:升级 numpy 包 ,终端输入:
sudo pip3 install -U numpy==1.21.5
这里是指定升级numpy的版本为1.21.5
参考连接:
https://blog.csdn.net/electric_sheep/article/details/124063117?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%A0%91%E8%8E%93%E6%B4%BE%20ImportError:%20numpy.core.mu&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-124063117.142v13pc_search_result_control_group,157v14new_3&spm=1018.2226.3001.4187
参考连接:
https://blog.csdn.net/weixin_43975684/article/details/105523412