记录树莓派安装 OpenCv 所踩过的坑

文章目录

  • 环境介绍
  • 一、换源
  • 二、安装一些opencv所要使用到的环境和包
  • 三、安装opencv
    • 1、sudo apt-get install python3-opencv
    • 2、pip3 install opencv-python
      • a、首先,安装opencv,终端输入:
      • b、然后,安装opencv-contrib,终端输入:
      • c、OpenCV文件路径:
  • 三、树莓派引入cv2模块时,ImportError错误
  • 四、PyChorm中引入cv2文件,无法智能提示!

环境介绍

开发板:树莓派4B
环境:树莓派官方环境:2022.04.04版本、python3.9、opencv4.5.1.48

一、换源

首先将官方的源换为国内源,提高下载速度。这里选择的是清华的源。
终端输入

sudo nano /etc/apt/sources.list

换源时,要注意版本号!!,网上很多都是 busterstretch ,它们对应着不同版本的 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

等待软件更新。。。。

二、安装一些opencv所要使用到的环境和包

这里参考了 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的方法,但都太老了(基本都试过。。)。有通过下载源码进行编译的,但编译过程中会遇到一堆报错,对小白很不友好。
这里介绍下本人所尝试的两种简单的方法:

1、sudo apt-get install python3-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提供的库文件。。。各种查询方法也都试了。。。。

2、pip3 install opencv-python

之前这种方法也试过,但是下载时各种断流,非常恼火。
但在网上找到了一种方法,采用阿里云的源来进行安装。
参考连接:https://wenku.baidu.com/view/a44889db920ef12d2af90242a8956bec0975a5a1.html
步骤如下:

a、首先,安装opencv,终端输入:

pip3 install opencv-python==4.5.1.48 -i https://mirrors.aliyun.com/pypi/simple

这里的opencv-python==4.5.1.48是指指定了opencv的安装版本。
这里是为了和电脑中的版本一致,可根据具体情况进行替换。

b、然后,安装opencv-contrib,终端输入:

pip3 install opencv-contrib-python==4.5.1.48 -i https://mirrors.aliyun.com/pypi/simple

同理,opencv-contrib-python==4.5.1.48为指定版本号。
这里的两个版本号需要一致!!!
至此,opencv已经安装好了,可采用上述的验证方法进行验证。

c、OpenCV文件路径:

对于opencv安装路径的获取,可采用如下代码:

sudo find / -iname cv2

查找cv2的存放路径。如:haarcascade_frontalface_default.xml文件在其cv2目录下的data文件夹里。

三、树莓派引入cv2模块时,ImportError错误

在引用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

四、PyChorm中引入cv2文件,无法智能提示!

参考连接:

https://blog.csdn.net/weixin_43975684/article/details/105523412

你可能感兴趣的:(opencv,debian,linux,python)