主要内容

使用网络摄像头追踪绿球

这个例子向您展示了如何使用MATLAB来处理从BeagleBone Black®板上的网络摄像头捕获的图像,以跟踪一个绿色的球。

介绍

BeagleBone黑金宝app色硬件的MATLAB支持包允许您从网络摄像机捕捉图像,并将这些图像带入MATLAB进行处理。利用这种能力,我们将开发一个球跟踪算法。

先决条件

所需的硬件

要运行此示例,您将需要以下硬件:

  • BeagleBone黑色硬件

  • 5V电源

  • 网络摄像头,如罗技网络摄像头C600

创建一个Web Camera对象

将一个兼容的USB摄像头连接到BeagleBone Black硬件的USB主机端口。注意,一些USB摄像头从BeagleBone Black硬件的USB端口吸取了太多的电流,可能无法正常工作。在这种情况下,请使用USB集线器。确保beaglebone对象的AvailableWebcam属性显示USB摄像头。如果看不到USB摄像头,则无法正确识别USB摄像头。试着用相机重新启动你的BeagleBone Black。

通过在MATLAB提示符上执行以下命令来创建Web摄像机对象。

bbb = beaglebone;

检查bbb对象的AvailableWebcams属性以找到网络摄像机名称。使用此名称创建网络摄像机对象。在不指定相机名称的情况下,它使用自动找到的相机名称。

凸轮=摄像头(bbb);

摄像头是一个网络摄像头对象的手柄。让我们在MATLAB中显示从网络摄像机捕获的图像。

对于i = 1:100 img =快照(Cam);显示亮度图像(img);drawnow;结束

提取颜色组件

我们将从3D图像数据中提取三个二维矩阵,分别对应于图像的红、绿、蓝分量。在继续示例的其余部分之前,我们将加载一个已保存的映像。我们将确保我们的算法在测试图像上工作,然后再继续现场数据。

绿色计算

接下来我们估算绿色分量的强度

绿色图像阈值

我们对图像进行阈值,以找到我们认为足够绿色的图像区域。

发现中心

找到图像的中心,并标记一个点。

对实时数据运行检测算法

我们可以创建一个MATLAB函数,trackball。m的MATLAB代码,我们在本示例的前几节中开发的。在编辑器中查看MATLAB函数。

编辑(“trackball.m”);

函数轨迹球()采用图像和绿色检测阈值,并返回绿色检测算法的结果。我们将在循环中捕获的图像上调用此函数。在运行下面的MATLAB代码片段之前,请握住网球并将其放置在Beaglebone黑色网络摄像机的视图中。虽然MATLAB代码正在运行,但要移动球。

图;For I = 1:200 [img, bw] = trackball(snapshot(cam), 40);次要情节(2,1,1);显示亮度图像(img);次要情节(2,1,2);显示亮度图像(bw);drawnow;结束

概括

本示例介绍了一个应用程序示例,其中使用Web Camera处理来自BeagleBone Black的图像,使用简单的绿色检测算法。这种算法后来被用于追踪网球。