2024.10.1 多种方法在树莓派4B bookworm 上安装OPENCV

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

虽然关于在树莓派上怎么安装opencv的教程有很多,但有些教程因为太旧了,与最新的树莓派系统不匹配,作者在网上找了很多教程,最终找到了三种方法可以安装opencv。
部分方法借鉴了此文章基于树莓派4B debian 12更换清华镜像源安装opencv

小白强烈推荐使用方法一,但一定要跟着作者的教程走

用官方源下载的话建议上午或者中午进行操作,网速会快一点

一、树莓派系统安装

关于树莓派系统安装的教程有很多,这里就不再依次赘述了,但为了成功一定要跟着作者的步骤来。
使用树莓派官方烧录器,选择树莓派4B,选择Raspberry Pi OS(64bit),如图
在这里插入图片描述
选好后再选择要被烧录的SD卡,选择好SD卡后点击NEXT,如图
在这里插入图片描述
点击编辑设置,如图

在这里插入图片描述
打勾的从上到下依次是设置你的树莓派账户的名字和密码,配置你的手机的热点的名称和你手机热点的密码,语言设置不用管他。(树莓派账户和你的手机热点的密码不管你设置几位,输完后都会显示很多点,这是一种保密机制,记住自己设置的密码是什么就可以了)

点击保存
在这里插入图片描述

点击是,出现如下图
在这里插入图片描述
再点击是
在这里插入图片描述
等待装载镜像(第一次装可能有点慢,耐心等待一下)

二、使用PUTTY远程连接树莓派

将SD卡插入树莓派卡槽中,启动树莓派(一定要打开手机热点,并且电脑也要链接手机热点,确保创建了一个局域网环境,等待树莓派连接)
连接成功后看手机热点树莓派的IP地址(小米手机看不到,这时候需要在电脑上下载Advanced IP Scanner,和putty一样,浏览器上大家自行搜索下载)

打开putty,将树莓派的IP地址输入进去,点击open
在这里插入图片描述
在这里插入图片描述
点击Accept
在这里插入图片描述
输入你的树莓派的账户和密码(输入密码时密码是不会显示的,输入完直接回车就行)
在这里插入图片描述
这时候我们就可以用终端操控树莓派了,如果你想用树莓派桌面的话需要下载VNC Viewer并且在树莓派里打开VNC服务才可以,VNC Viewer软件大家自行下载,教程自行搜索,这里只演示怎么打开树莓派的VNC功能。

在PUTTY的终端中输入

sudo raspi-config

回车,如图

在这里插入图片描述
选择Interface Options选项,回车
在这里插入图片描述
选择VNC,回车
在这里插入图片描述
选择Yes,回车
在这里插入图片描述
选择ok,之后选择finish就可以了,用VNC之前记得重启树莓派

回到PUTTY树莓派终端
先扩大系统文件,输入以下代码

sudo raspi-config

选择Advanced Options回车,之后选择Expand Filesystem回车,如图
在这里插入图片描述
在这里插入图片描述
选择ok,在选择finish,要求重启树莓派时在选择yes
重启完成后重新用PUTTY登入树莓派终端

安装opencv有两种方法,大家根据自己的需求进行选择
强烈推荐小白选择方法一

方法一 换清华源安装opencv

如果大家安装了我的系统的话就直接复制粘贴我的清华源配置信息就可以了,为了严谨,我们把步骤重新走一遍
1.查看自己的系统架构

uname -m
lsb_release -a

我的系统架构如图
在这里插入图片描述
如果大家是一步一步跟着我的教程来的话,系统架构一般都是一样的,下面开始换源
2.换源

 sudo nano /etc/apt/sources.list

将所有的代码给注释掉,之后将以下代码粘贴上去

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
 
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
 
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
 
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
 
# deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# # deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

粘贴完之后按住ctri+o 回车保存,再按ctrl+x退出

如果有想在别的系统架构换源的话,可以自己去找找 清华源(点击这个链接跳转)
还要换一个配置文件,同上步操作

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

将原有代码注释,添加以下代码

deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ bookworm main

同上保存并退出

在终端中添加公匙

gpg --keyserver  keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
gpg --export --armor  9165938D90FDDD2E | sudo apt-key add -

到这里换源就换好了,下面就是安装opencv的部分了

3.安装opencv
更新系统

 sudo apt-get update
 sudo apt-get upgrade

之后输入 进行安装opencv

sudo apt-get install python3-opencv

安装好后输入

python3
import cv2
cv2.__version__

结果如图所示
在这里插入图片描述
到此处opencv就安装成功了

4.安装依赖包
保险起见查看有没有依赖包没有安装

sudo apt install -y python3-opencv

安装好依赖包后

打开树莓派的Thonny IDE,如图
在这里插入图片描述

import cv2
import os
import sys
import contextlib

# Context manager to suppress stderr
@contextlib.contextmanager
def suppress_stderr():
    with open(os.devnull, 'w') as devnull:
        old_stderr = sys.stderr
        sys.stderr = devnull
        try:
            yield
        finally:
            sys.stderr = old_stderr

# Initialize the camera
cap = cv2.VideoCapture(0)

# Check if the camera opened successfully
if not cap.isOpened():
    print("Camera failed to open")
    exit()

# Set the camera resolution
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

while True:
    # Read a frame from the camera
    ret, frame = cap.read()

    # Check if the frame was read successfully
    if not ret:
        print("Failed to read frame")
        break

    # Display the frame
    with suppress_stderr():
        cv2.imshow('Camera', frame)

    # Exit loop on 'q' key press
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# Release the camera
cap.release()

# Close all OpenCV windows
cv2.destroyAllWindows()

注意:代码中无论代码本身还是注释都不能出现汉字,作者查找了很多解决方案都没有成功,就干脆全用英文了

点击Run后,出现以下界面就算成功了
在这里插入图片描述
运行时会出现libpng warning: iCCP: known incorrect sRGB profile这种报错,但不影响程序正常使用,如果读者有兴趣的话可以自行查找相关教程消除这个报错

方法二 使用apt安装预编译的OpenCV(注意是官方源)

这是第二简单的方法,建议在中午下载(快一点)
1.更新软件包列表并更新系统:

sudo apt update
sudo apt upgrade

2.安装OpenCV:

sudo apt install python3-opencv

3.验证安装:

python3 -c "import cv2; print(cv2.__version__)"

如图就算安装好了

在这里插入图片描述
4.安装依赖包

过程同方法一

方法三 从源代码编译安装OpenCV

如果大家需要特定的配置选项或者最新的OpenCV版本,可以从源代码编译安装。这需要更多的步骤和时间,因为编译过程可能相当耗时,尤其是在树莓派这样的设备上。
1.安装依赖项:

sudo apt update
sudo apt install cmake g++ wget unzip

如图就算安装好了

在这里插入图片描述
2.下载OpenCV源码:

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip

在这里插入图片描述

unzip opencv.zip

在这里插入图片描述

cd opencv-4.x

在这里插入图片描述
3.创建构建目录并进入:

mkdir build
cd build

在这里插入图片描述
4.配置CMake:
以下是一个示例,大家可以自行配置

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D OPENCV_ENABLE_NONFREE=ON \
      -D BUILD_EXAMPLES=ON ..

如果小白不懂的话可以跟着作者来

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D OPENCV_ENABLE_NONFREE=ON \
      -D BUILD_EXAMPLES=ON \
      -D PYTHON3_EXECUTABLE=$(which python3) \
      -D PYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
      -D PYTHON3_LIBRARY=$(python3 -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))") \
      -D PYTHON3_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
      ..

此配置的意思是opencv可以用python3进行编程,将这些复制粘贴进终端,回车

5.编译opencv
编译过程有点费时间,大家耐心等待一下(作者编译了两个小时)

树莓派4B有四个核心,所以可以用四个线程进行编译

make -j4 # 使用4个线程进行编译,可以根据实际情况调整

在这里插入图片描述
6.安装OpenCV:

sudo make install

在这里插入图片描述
安装完毕

sudo ldconfig

最后验证安装是否成功

python3 -c "import cv2; print(cv2.__version__)"

在这里插入图片描述
同上,安装依赖包并更新系统即可

至此,安装成功

欢迎大家在评论区进行讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值