主要内容

跟踪一个绿色的球

这个例子展示了如何使用MATLAB®来处理图像捕获从一个覆盆子π™相机板模块来跟踪一个绿色的球。

介绍

覆盆子π相机板是一个自定义插件模块为覆盆子π的硬件设计。MATLAB支持包树莓万博1manbetxπ硬件允许您捕获图像的覆盆子π相机板,将那些对MATLAB进行处理。使用此功能,我们将开发一个球跟踪算法。

先决条件

所需的硬件

运行这个例子中您将需要以下硬件:

  • 覆盆子π硬件

  • 电源至少1输出

  • 一个相机板

创建一个相机板对象

创建一个相机板对象通过执行以下的MATLAB提示。

清晰的凸轮清晰的零售物价指数零售物价指数= raspi ();凸轮= cameraboard(零售物价指数,“决议”,“640 x480”);

凸轮是cameraboard对象的句柄。让我们从树莓π相机捕获的图像显示板在MATLAB。

我= 1:10 0 img =快照(cam);图像(img);drawnow;结束

请注意:您还可以使用网络摄像头API来创建一个网络摄像头对象。

提取颜色组件

我们将提取三个二维矩阵的3 d图像数据对应红色,绿色和蓝色的组件的形象。在继续之前的示例中,我们将加载一个保存图像。我们将确保我们的算法在测试图像进行实时数据。

img = imread (“tennis_ball.jpg”);图像(img);r = img (:,: 1);g = img (:,:, 2);b = img (:,:, 3);

绿色计算

接下来,我们近似绿色分量的强度

justGreen = g - r / 2 - b / 2;

阈值的绿色形象

我们阈值图像的区域形象,我们认为足够绿色。

bw = justGreen > 40;图像(bw);

发现中心

找到图像的中心和马克红点。

(x, y) =找到(bw);如果~ isempty (x) & & ~ isempty (y) xm =圆(平均(x));ym =圆(平均(y));xm-5 xx = max (1): min (xm + 5,大小(bw, 1));ym-5 yy = max (1): min (ym + 5、大小(bw, 2));bwbw = 0(大小(bw),“uint8”);bwbw (xx和yy) = 255;结束图像(justGreen + bwbw);

实时数据上运行检测算法

我们可以创建一个MATLAB函数,轨迹球。m的MATLAB代码我们开发了前面的例子。在编辑器中查看MATLAB函数。

编辑(“trackball.m”);

函数轨迹球()需要一个图像和一个绿色检测阈值并返回绿色检测算法的结果。我们将调用此函数在一个循环中捕获的图像。在运行下面的MATLAB代码片段之前,得到一个网球,并将其观点的覆盆子π相机。在MATLAB代码运行时,移动球。

图(1);i = 1:200 [img, bw) =轨迹球(快照(cam), 40);次要情节(211);图像(img);次要情节(212);图像(bw);drawnow;结束

总结

这个示例介绍了一个应用实例,图片来自覆盆子π相机板处理用一个简单的绿色检测算法。该算法随后被用来追踪一个网球。