基于Raspi的Opencv-Python开发笔记

本文所有未强调 “windows终端” 的 “终端”字眼,都是默认树莓派的终端

系统版本

系统版本有必要强调一下,因为不同版本很多操作需要修改

在终端输入uname -a

Release就是版本号,Codename是版本名

以下操作仅在此版本验证可行

使能摄像头

  1. 物理安装摄像头(本人用的是csi摄像头(0V5647)

  2. 使能 摄像头模块

    • 终端输入sudo raspi-config打开配置
    • 选择 Interface Options ->Legacy Camera ->yes(都是按回车)
    • 重启(断电或 sudo reboot)
  3. 终端输入ls /dev/ 一般就能看见 video0 设备了,恭喜你摄像头使能成功

软件源更换

RaspiOS的默认软件源服务器在国外,不更换的话使用apt等工具下载软件极慢(当然,也不是不行?)

这里直接推荐换清华源

  1. 终端输入 sudo nano /etc/apt/sources.list

  2. 直接使用以下内容更换原内容

    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
    
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
    
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
    
    deb https://security.debian.org/debian-security bullseye-security main contrib non-free
    # deb-src https://security.debian.org/debian-security bullseye-security main contrib non-free
    
    
    # deb http://deb.debian.org/debian bullseye main contrib non-free
    # deb http://security.debian.org/debian-security bullseye-security main contrib non-free
    # deb http://deb.debian.org/debian bullseye-updates main contrib non-free
    # Uncomment deb-src lines below then 'apt-get update' to enable 'apt-get source'
    #deb-src http://deb.debian.org/debian bullseye main contrib non-free
    #deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
    #deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
    
  3. 接着按下 Ctrl+X 再按 Y 再按回车保存并退出nano编辑器

  4. 终端输入sudo apt update更新软件,第一次换源的话应该需要一段时间

  5. 执行完后可以开始后后续操作了,当然,不换源也可以~

FTP 命令

如果树莓派是接显示屏使用的,可以忽略本章

FTP主要用途是将两个设备建立链接,实现无线传输文件/数据,由于OpenCV需要处理图像,而我们没有显示屏给树莓派,所以可以将图像由windows传过去或在windows端查看计算后的生成图像

本章将讲解在Windows下FTP命令行的使用(建立连接,文件操作,上传文件,下载文件,断开连接)

前提,需要将树莓派配置为FTP服务器,可参考此文章设置Raspberry Pi的SFTP章节 和 在Raspberry Pi上设置FTP服务器章节

建立连接

  1. 确保Windows和树莓派在同一局域网,很简单的操作就是树莓派链接Windows的热点,或者两者连接手机热点

  2. 获取IP地址(两个办法)

    • 在热点发出端查询分配给树莓派终端的 IP

      1. 如果是手机热点,在热点管理界面找到已连接设备,就能看到 IP,其他热点或者家用WIFI的话,就麻烦自行百度查IP啦
    • 在树莓派端自行查询被分配的 IP

      1. 终端输入ip address
      2. 找到 3:wlan0:这一行,再由此行往下找两行,找到 inet 开头的行,会有 inet xxx.xxx.xxx.xxx/yy 的一段字,xxx.xxx.xxx.xxx是树莓派ip地址。
  3. 打开Windows的终端(cmd),输入 ftp xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx是树莓派的IP地址

  4. 输入Raspi用户名(如果没额外设置一般是 pi )

    输入Raspi用户名

  5. 输入Raspi密码(由于密码保护,输入密码时是看不见输入了什么的)

    输入Raspi密码

  6. 连接成功

    连接成功

文件操作

ftp>

  1. 使用 ls 来查看当前ftp目录的文件
  2. 使用 cd 来切换ftp系统目录。
  3. 使用 mkdir 来新建一个目录(文件夹)。
  4. 使用 delete 路径+文件名来删除文件。
  5. 使用 mdelete remote-file 批量删除远程主机文件。
  6. 使用 rm 路径名来删除文件夹。
  7. 使用 lcd 设置当前用户工作路径,也就是要把资源下载到本地哪个文件夹。
  8. !xx 是跳出ftp模式,在命令行中执行xx命令,比如说使用 lcd 切换到本地另外一个文件夹之后,你想看当前文件夹下有什么文件,就可以使用 !dir 来实现。
  9. 使用 pwd 命令查看当前路径。

上传文件

  1. 先在ftp命令行中使用 cd xxx 进入想在树莓派存放文件的路径

  2. 使用put(或者send,如果想上传多个文件的话使用mput) 路径+文件名

    put E:\test.txt
    send E:\test.txt
    mput E:\test.txt E:\test1.txt
    

下载文件

  1. 先在ftp命令行中使用 cd xxx 进入想在树莓派存放文件的路径

  2. 使用get(下载多个文件用mget路径+文件名来下载文件。下载的文件默认是保存在了Windows的 C:\Users\[用户名] 路径下

    get ./test.txt
    mget ./test.txt ./test1.txt
    

断开连接

  1. ftp命令行直接输入bye即可

安装OpenCV-Python

由于不同的Python版本也会导致代码的细微区别(大部分情况是没区别的)

终端输入Python -V查看 Python 版本, 本人使用的是 3.9.2 版

以后需要在命令行输入的指令我就不强调 “在终端输入” 这5个字了

正片开始

  1. 安装opencv库,有两个方法,选一即可

    • pip install opencv-python(挺慢的,20多M下载了一个多小时,不过似乎这个能下载最新版)
    • sudo apt install python3-opencv (换源后相当快,几分钟就搞定)
  2. 我记得安装完opencv时,会自动下载numpy库,所以可以跳过此步,如果后续写程序报错了再回来安装下numpy库

    • pip install numpy
  3. 在终端输入 python,运行 python

  4. 输入 import cv2,回车, 如果没有报错,则证明opencv安装完毕

  5. 输入 cd ~/Desktop,进入“桌面”

  6. 在文本编辑器 nano 中写好python程序测试文件

    输入 nano demo.py,写入以下程序

    # 示例代码
    import cv2 as cv
    import numpy as np
    import time
    
    cap = cv.VideoCapture(0) # 实例化摄像头采集器
    time.sleep(1) # 程序等待一秒,等摄像头初始化完毕
    
    _, img = cap.read() # 捕捉一帧图像
    
    cv.imwrite("demo.jpg", img) # 保存在绝对路径
    
  7. 保存并退出 nano 编辑器,输入 python demo.py

  8. 执行完毕后,Desktop路径下应该是生成了 demo.jpg照片,说明摄像头也成功工作了

至此,恭喜你可以在树莓派上做视觉算法的学习了

  • 16
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值