此示例演示如何在Raspberry Pi上识别实时视频流中对象的边界™ 通过使用MATLAB®功能块和针对Raspberry Pi硬件的Simulink®支持包实现硬件。识别对象边界的过程称为万博1manbetx万博1manbetx边缘检测.本例实现了Sobel边缘检测算法来识别目标的边界。
在本例中,您将学习如何:
从连接到Raspberry Pi硬件的网络摄像头或摄像头模块获取实时视频流。
利用MATLAB函数块对采集的视频实现Sobel边缘检测算法。
在树莓派硬件上显示边缘突出的对象。
虚拟网络计算(VNC)查看器(可选)
提示:在开始这个示例之前,我们建议您完成针对Raspberry Pi硬件的Simu万博1manbet万博1manbetxxlink支持包入门实例
1.将USB数据线的micro-USB端连接树莓派,USB数据线的普通USB端连接计算机。等待硬件上PWR指示灯开始闪烁。
2.要将视频设备连接到硬件,请执行以下操作:
如果你有摄像头,将摄像头连接到硬件上的USB端口。请注意,一些网络摄像头耗电太多,可能需要一个有电源的USB集线器才能正常运行。
如果安装了树莓派摄像机模块,请使用CSI线缆将摄像机模块与硬件连接。摄像机模块与硬件的连接方法请参考厂商提供的操作手册。
3.使用硬件设置界面,配置树莓派网络。
打开边缘检测模型。
该模型由以下三个模块组成:
V4L2视频捕捉:此块从连接到硬件的视频设备捕获实时图像。该块输出图像像素的红色、绿色和蓝色组件作为一个8位值。
双击块并指定要在中捕获视频的设备的名称设备名称参数。如果您不知道设备的名称:
1.打开硬件终端,使用ls
命令。这个命令列出了所有连接到硬件的视频设备:
ls |-al/dev/video*
2.复制您的设备名称,并将名称粘贴到设备名称参数。
MATLAB函数:此块实现Sobel边缘检测算法。该算法通过近似图像的梯度大小来查找图像中的边缘。双击该块时,可以看到该算法由两个二维过滤器组成,一个用于计算列方向的梯度,另一个用于计算g行方向的半径。两个过滤器都使用3乘3内核。
SDL视频显示:此块显示硬件上的边缘强调对象。
1.要打开“模型配置参数”对话框,请单击Simulink模型工具栏上的齿轮图标。万博1manbetx
2.在“配置参数”对话框中,选择硬件实现.
3.设置硬件板参数覆盆子π
.属性中的参数将自动填充硬件板设置默认值为树莓派。
4.在硬件板设置窗格,展开目标硬件资源并选择板参数.指定这些参数值:
设备地址:硬件的IP地址或主机名。
用户名:指定在硬件上运行的Linux系统的根用户名。Raspbian Linux发行版的默认用户名为圆周率
.
密码:指定硬件上Linux系统的root密码。Raspbian Linux发行版的默认密码为树莓
.
5.点击应用.点击好啊保存更改。
在硬件选项卡中的Simuli万博1manbetxnk模型模式部分中,选择机上运行然后点击构建、部署和启动。模型窗口的左下角显示状态,同时支持包生成代码。成功生成代码后,支持包在硬件上加载并运行代码。可执行文件开始从视频设备获取实时视频,对获取的万博1manbetx图像运行Sobel算法,然后显示边缘-Raspberry Pi屏幕上突出显示的对象。要查看Raspberry Pi屏幕,请使用VNC查看器并在硬件上执行远程会话以获取显示。您也可以在监视器和硬件之间连接HDMI电缆。
您也可以在其中运行这个模型外部模式调整模型中的阈值,并在模拟过程中观察输出特性的变化。在外部模式下,模型在计算机上运行,并在SDL视频显示块。
根据您的要求,将边缘检测算法替换为任何其他性能更好的算法。