×

使用Raspberry PI和open CV进行图像处理

消耗积分:2 | 格式:zip | 大小:0.05 MB | 2023-07-06

分享资料个

描述

Story:-

我做这个项目是为了学习使用 Raspberry PI 和 open CV 进行图像处理。为了使这个项目更有趣,我使用了两个 SG90 伺服电机并在其上安装了摄像头。一个电机用于水平移动,第二个电机用于垂直移动。

 
Step 01:- ​Working of Project
  • 由 RPI Camera 捕获并使用 openCV 在 python 中处理的图像。
  • 捕获的图像从 RGB 转换为 HSV。
  • 为特定颜色应用掩码(在我的最终代码中,我使用了红色,特殊代码用于查找准确的掩码值,这也附在耳边)。
  • 查找框架中所有红色对象的轮廓。
  • 最后排序并选择第一个轮廓将在框架中给出红色物体。
  • 在对象上绘制矩形并找到矩形的水平和垂直中心。
  • 检查框架水平中心和对象矩形水平中心之间的差异。
  • 如果差异大于设定值,则开始移动水平伺服以最小化差异。
  • 同样,我们可以移动垂直轴,最后对象跟踪工作 180 度。(半球形)
Step 02:- Wiring Diagram
poYBAGOIMgGAFwoqAAPmpXMmDW8338.jpg
接线图
 

树莓派与PCM9685连接详解

  • 树莓派引脚 1(3.3V) >> PCM9685 引脚 VCC
  • Raspberry PI Pin 3(SDA) >> PCM9685 Pin SDA
  • Raspberry PI 引脚 1(SCL) >> PCM9685 引脚 SCL
  • Raspberry PI Pin 1(Ground) >> PCM9685 Pin Ground
  • PCM9685 的 V+ 和 OE 引脚未使用。
  • 我为此花了整整 2 个晚上,所以在这个设置过程中不要紧张,不要喝杯咖啡或啤酒。
  • 我已按照下面提到的 Open CV 安装书面指南进行操作,并建议您遵循相同的指南,因为它非常简单且编写得非常好。
  • https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi/
Step 05:- Checking PI to PCM9685 i2c interfacing.
  • 打开终端并输入以下命令以安装 I2C 测试实用程序。
  • sudo apt-get install python-smbus这将在 pi 上安装 requird 包。
  • sudo apt-get install i2c-tools这将在 pi 上安装 requird 包。
  • sudo i2cdetect -y 1此命令将检查 I2C 总线并响应成功连接的从设备地址,如下所示。
pYYBAGOIMgSAEAeCAABiOXX2Wmw634.jpg
如果 PI 之间建立了通信,则显示 PCM9685 I2C 地址。
 
Step 06:- Install Adafruit-circuitpython-servokit Library
  • adafruit-circuitpython-servokit 用于控制 SG90 伺服电机的库。
  • 我们可以使用 PCM9685 操作 16 个电机。
  • 由于 OpenCV 库安装在虚拟环境中,因此我们必须在虚拟环境中安装伺服控制库,否则它将无法与 OpenCV 一起使用。
  • 打开终端并输入source ~/.profile并按回车键。这样我们就进入了虚拟环境。
  • 输入pip3 install adafruit-circuitpython-servokit并回车。在pip3之前不要使用SUDO。
  • 参考文档:- https://learn.adafruit.com/adafruit-16-channel-servo-driver-with-raspberry-pi?view=all
Step 07:- Check Servo Motors.
  • 如接线图所示,用 PCM9685 连接两个电机。
poYBAGOIMgGAFwoqAAPmpXMmDW8338.jpg
接线图
 
  • 打开终端并键入python3 并按回车键。
  • from adafruit_servokit import ServoKit# 这将导入库
  • kit = ServoKit(channels=16)#定义变量对象“kit”kit.
  • kit.servo[0].angle = 90将第一个电机位置设置为 90 度。
  • kit.servo[1].angle = 90将第二个电机位置设置为 90 度。
  • 通过更改值“90”,我们可以将伺服电机位置从 0 移动到 180。
  • 将两个电机位置设置为 90 并断开电机,因为 90 是全范围的中心位置。

Step 08:- Setup& Checking Camera.

  • 将相机带电缆插入 PI 相机连接器。确保皮带方向。尝试将电缆的蓝色胶带侧部分保持在相机连接器的黑色锁定夹侧。
poYBAGOIMgqAGHU0AABJcZSQW7s972.png
PI 和相机连接器详细信息
 
  • 打开终端并输入Sudo raspi-config并按回车键。这将打开树莓派配置窗口。
  • 选择第 5 个选项,即“Interfacing Option”,然后选择第一个选项,即 camera 和 enabe camera。
  • 打开termianl,输入belwo命令

raspistill -o cam.jpg这将捕获名为“cam”的图像并将其保存为 .jpg 格式。

捕获的文件将保存在/home/pi目录中,图像是颠倒的。

参考文档:- https://www.raspberrypi.org/documentation/usage/camera/README.md。

Step 09:- Mounting of Servo and Camera.

  • 将两个 moto 位置设置为 90 度。
  • 在第二个伺服器上安装伺服器和安装相机。
pYYBAGOIMhCAK7EIAAqKS9cP_WI842.jpg
马达的安装
 
Step 09:- Running Final Code.
  • 现在我们可以运行最终代码来跟踪帧中的红色对象。(最终代码是 Red_Track01.py)我已经上传了。
  • 通过应用下面提到的命令运行代码切换到虚拟环境
  • Sourec ~/.profile并输入。
  • 下一个命令是workon CV并按回车键。
  • 运行最终代码:-“文件位置的路径”/python3 Red_Track01.py
  • 按 Esc 键将停止代码执行。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !