此示例显示了如何使用MATLAB来处理从Raspberry PI相机板模块捕获的图像以跟踪绿色球。
树莓派相机板是一个定制设计的附加模块的树莓派硬件。树莓派硬件的MATLA金宝appB支持包允许您从树莓派摄像机板捕获图像,并将这些图像带入MATLAB进行处理。利用这种能力,我们将开发一个球跟踪算法。
我们建议完成与树莓派相机板一起工作的例子。
要运行此示例,您将需要以下硬件:
覆盆子π硬件
一种至少具有1A输出的电源
一个相机板
在MATLAB提示符下执行以下命令创建一个摄像机板对象。
清除凸轮清除RPI.零售物价指数= raspi ();凸轮= cameraboard(零售物价指数,“决议”,“640 x480”);
凸轮是载镜对象的手柄。让我们在MATLAB中显示从树莓派相机板捕获的图像。
为I = 1:100 img = snapshot(cam);图像(img);drawnow;结束
请注意你也可以用the网络摄像头
API来创建一个摄像头对象。
我们将从3D图像数据中提取三个二维矩阵,分别对应于图像的红、绿、蓝分量。在继续示例的其余部分之前,我们将加载一个已保存的映像。我们将确保我们的算法在测试图像上工作,然后再继续现场数据。
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] = find(bw);如果~isempty(x) && ~isempty(y) xm = round(mean(x));ym =圆(平均(y));Xx = max(1, xm-5):min(xm+5, size(bw, 1));Yy = max(1, Yy -5):min(ym+5, size(bw, 2));bwbw = 0(大小(bw),“uint8”);Bwbw (xx, yy) = 255;结束图像(justGreen + bwbw);
我们可以创建一个MATLAB函数,trackball。m的MATLAB代码,我们在本示例的前几节中开发的。在编辑器中查看MATLAB函数。
编辑(“trackball.m”);
函数trackball()获取绿色检测的图像和阈值,返回绿色检测算法的结果。我们将在循环中捕获的图像上调用这个函数。在运行下面的MATLAB代码片段之前,获得一个网球,并将它放在树莓派摄像机板的视图中。当MATLAB代码运行时,移动球。
图(1);为I = 1:200 [img, bw] = trackball(snapshot(cam), 40);次要情节(211);图像(img);次要情节(212);图像(bw);drawnow;结束
本示例介绍了一个应用示例,其中对来自树莓派相机板的图像进行了简单的绿色检测算法处理。这种算法后来被用于追踪网球。