主要内容

在Raspberry PI硬件上部署边缘检测算法

此示例显示了如何将Raspberry PI™硬件上的边缘检测功能部署为使用Matlab®支持包进行Raspberry PI硬件的独立可执行文件。金宝app在此示例中,您将学习如何从连接到Raspberry PI硬件的网络摄像头中获取实时映像,在所获取的图像上运行边缘检测功能,并在连接到同一覆盆子PI硬件上的显示器上显示结果。

您还可以从Matlab®Linne™部署边缘检测功能。看在Matlab在线连接到Raspberry PI Hardware Landel将覆盆子PI硬件连接到MATLAB在线,并部署MATLAB函数。

有关此示例的简要概述,请参阅在Raspberry PI硬件上部署边缘检测算法视频。

先决条件

在开始此示例之前,我们建议您完成以下示例:

需要产品下载188bet金宝搏

  • 覆盆子PI硬件。在使用Matlab®Online™时,请确保硬件连接到Internet。

  • 支持金宝appUSB网络摄像头或者覆盆子PI相机模块

  • 连接到覆盆子PI硬件的显示器

  • MATLAB编码器许可证

步骤1:在存储的图像上创建和运行边缘检测算法

1.复制德国函数并将其粘贴在Matlab编辑器中。该功能实现了一种算法来读取Peppers.png.从计算机中的文件,应用边缘检测算法Peppers.png.,并将结果显示为Matlab图。该算法包括一个3×3 Sobel运算符,它在水平和垂直方向上施加到图像,然后抵抗恒定值的阈值。

函数编辑()%定义用于边缘检测的卷积内核kern = [1 2 1;0 0 0;-1 -2 -1];%从文件中读取图像并应用IMG = IMREAD('PEPPERS.PNG');h = conv2(img(:,:,2),kern,'sider');v = conv2(img(:,:,2),kern','sider');e = sqrt(h。* h + v。* v);edgeimg = uint8((e> 100)* 240);imshow(edgeimg);结束

2.保存函数edgedetection.m.到您具有写入访问的文件夹。

3.运行德国使用MATLAB命令窗口中的运行命令功能。运行该功能时,MATLAB开始执行边缘检测算法Peppers.png.存储在计算机中的文件。

运行edgedetection.

步骤2:修改边缘检测算法以使用来自硬件的实时图像

在部署之前,运行德国建议使用带有实时输入和输出(IO)的功能。

使用Live Io使您可以:

  • 验证MATLAB函数是否按预期与硬件通信。

  • 检测运行时错误(例如外设冲突),在部署期间更难诊断。

1.要使用Live IO,您必须修改使用连接到硬件的网络摄像头捕获实时图像的功能。

函数编辑()%创建与覆盆子PI硬件r = Raspi的连接;
%创建与覆盆子PI相机模块的连接,捕获Live%图像,然后显示图像w = webcam(r);
%定义用于边缘检测的卷积内核kern = [1 2 1;0 0 0;-1 -2 -1];%运行从覆盆子PI相机模块捕获的图像上的边缘检测算法。对于k = 1:1000 img =快照(w);h = conv2(img(:,:,2),kern,'sider');v = conv2(img(:,:,2),kern','sider');e = sqrt(h。* h + v。* v);edgeimg = uint8((e> 100)* 240);imshow(edgeimg); end end

2.运行德国使用MATLAB命令窗口中的运行命令功能。运行该功能时,MATLAB连接到硬件,并开始在从连接到硬件的网络摄像头捕获的图像上执行边缘检测算法。

运行edgedetection.

4.如果需要,请遵守输出和微调边缘检测阈值以适应相机和环境的特性。

步骤3:将编译指令添加到MATLAB功能

添加%#codegen.指令(或Pragma)之后德国函数签名表示您打算在硬件上部署函数。添加此指令指示MATLAB代码分析仪帮助您诊断和修复在部署期间导致错误的违规。

函数编辑()%#codegen

第4步:准备部署的边缘检测功能

1.检查一下德国通过遵循步骤,使用代码分析仪使用代码分析仪使用代码分析仪检查MATLAB功能并在继续下一步之前修复它们。

在此示例中,指示符的绿色指定MATLAB函数没有错误或警告。

2.调试德国使用代码生成支持的呼叫替换所有不受支持的呼叫。金宝app

在这个例子中,映像在线编号18使用的功能不受代码生成支持。金宝app部署德国没有任何修改的功能将导致可执行文件可能不按预期行事。

要修复此不支持的函数调用错误金宝app,请更换映像使用代码生成支持的等效呼叫。金宝app您可以复制功能映像通过使用DisplayImage.Matlab支持包提供的raspberry PI硬件提供金宝app的功能。

函数编辑()%#codegen%创建与覆盆子pi硬件r = raspi的连接;
%创建与覆盆子PI相机模块的连接,捕获Live%图像,然后显示图像w = webcam(r);
%定义用于边缘检测的卷积内核kern = [1 2 1;0 0 0;-1 -2 -1];%运行从覆盆子PI相机模块捕获的图像上的边缘检测算法。对于k = 1:1000 img =快照(w);h = conv2(img(:,:,2),kern,'sider');v = conv2(img(:,:,2),kern','sider');e = sqrt(h。* h + v。* v);edgeimg = uint8((e> 100)* 240);DisplayImage(r,edgeimg,'标题','边缘检测'); end end

步骤5:创建硬件配置对象

1.使用使用的硬件配置对象targethardware.MATLAB命令窗口中的函数。

Board = targethardware('raspberry pi')
板=
具有属性的targethardware:
名称:'raspberry pi'deviceaddress:'192.168.1.2'用户名:'pi'密码:'*********'builddir:'/ home / pi'构建:'构建,加载和运行'

笔记:您可以从Matlab®Linne™部署边缘检测算法。看在Matlab在线连接到Raspberry PI Hardware Landel步骤。

创建硬件配置对象

Board = targethardware('raspberry pi')
板=
具有属性的targethardware:
姓名:'raspberry pi'deviceaddress:'00000000a9f2c18c'用户名:''password:''builddir:'/ home / matlabrpi'enablerunonboot:0构建:'构建,加载和运行'coderconfig:[1x1 coder.codeConfig]

在Matlab Online™DeviceAddress.是个序列号由此显示的硬件雀雀主义者

2.验证DeviceAddress.用户名, 和密码输出中列出的属性。如果需要,请使用点表示法语法更改属性的值。

例如,将设备地址更改为173.21.22.327, 进入:

board.deviceaddress ='173.21.22.327'

第6步:在硬件上部署MATLAB函数

将MATLAB函数部署为支持硬件上的独立可执行文件部署功能。

部署(董事会,'edgedetection')
代码成功:查看报告

部署函数启动代码生成德国功能。在代码生成结束时,MATLAB生成代码生成报告。使用此报告调试德国在生成的代码中的任何构建错误和警告的功能。

在成功生成代码之后,支持包加载并将代码运行为硬件上的独立可执行文件。金宝app可执行文件启动从网络摄像头获取实时图像,在获取的图像上运行边缘检测算法,然后在监视器上显示结果。

也可以看看