【树莓派4B学习】十二、摄像头辅助opencv实现巡线

本文介绍了使用树莓派4B结合OpenCV进行摄像头巡线的基础知识,特别是重点讲解了二值化操作在巡线中的应用。文章详细阐述了OpenCV中的多种二值化类型,并给出了如何根据实际情况调整阈值以适应黑线或白线巡线的技巧。此外,还提示可以通过开启图像显示辅助设定最佳阈值参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基础知识

二值化操作

首先看一个常用的图像处理操作“二值化” , opencv 提供了多种二值化形式:

  • cv2.THRESH_BINARY
  • cv2.THRESH_BINARY_INV
  • cv2.THRESH_TRUNC
  • cv2.THRESH_TOZERO
  • cv2.THRESH_TOZERO_INV

在灰度图像中, 0-255 代表着亮度等级, 黑色为 0, 白色为 255。 标准的二值化就是根据设定的亮度阈值, 将超过这个亮度的点赋值为白色的 255, 低于这个阈值的点赋值为黑色的0。

目前做巡黑线, 使用正常模式 cv2.THRESH_BINARY。 如果是巡白线, 就只需要修改成反色模式cv2.THRESH_BINARY_INV 就可以将白色线条转换成黑色点来用同一个程序了。

这几种操作的效果不同, 下图是一个灰度图在阈值为 127 下对应的输出图像

在这里插入图片描述

二、示例代码

#coding:utf-8
#Python中声明文件编码的注释,
### 在树莓派4B中通过OpenCV访问和使用USB摄像头 要在树莓派4B上通过OpenCV访问并使用USB摄像头,需完成以下几个方面的配置: #### 1. 启用树莓派摄像头支持 尽管树莓派4B默认可能未启用摄像头功能,可以通过`raspi-config`工具来激活它。打开终端并执行以下命令以启动配置界面: ```bash sudo raspi-config ``` 进入菜单后,导航至 **Interfacing Options** -> **Camera** 并选择 **Enable** 来激活摄像头模块的功能[^1]。 如果在上述过程中发现无法找到摄像头选项,则可能是由于某些设置被禁用了或者硬件接口存在问题。可以尝试更新树莓派固件或重新检查连接设备的状态[^2]。 #### 2. 安装必要的依赖库 为了能够顺利利用OpenCV处理来自USB摄像头的数据流,需要确保安装了相应的开发包和支持库。具体来说,应依次运行如下指令来获取所需资源: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install libopencv-dev python-opencv -y ``` 这些操作会下载并安装OpenCV及其Python绑定文件到系统环境中,从而允许开发者编写脚本来控制摄像机行为[^3]。 #### 3. 编写测试程序验证USB摄像头工作状态 下面给出了一段简单的Python代码片段用于检测已连接上的第一个可用USB摄像头是否正常运作,并展示其捕捉的画面帧率等基本信息。 ```python import cv2 cap = cv2.VideoCapture(0, cv2.CAP_V4L2) if not cap.isOpened(): print("Cannot open camera") else: while True: ret, frame = cap.read() if not ret: break gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame', gray) key = cv2.waitKey(1) & 0xFF if key == ord('q'): break cap.release() cv2.destroyAllWindows() ``` 此脚本首先创建了一个VideoCapture对象实例化指向编号为零(即首个插槽中的外接型)之物理装置;接着循环读取每一帧图像直至用户按键退出为止。值得注意的是,在初始化阶段指定了参数`cv2.CAP_V4L2`作为后台驱动机制的选择依据之一——这一步骤对于提高兼容性和性能表现尤为重要[^5]^。 #### 总结说明 综上所述,只要按照前述指导完成了基础环境部署之后,就可以轻松实现基于OpenCV框架下的各种视觉应用开发任务啦!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReCclay

如果觉得不错,不妨请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值