平移/倾斜伺服装置帮助摄像机使用视觉自动跟踪颜色对象。
现在我们将使用我们的设备帮助相机自动跟踪颜色对象如下所示:
可以从我的GitHub下载
这里的想法是使用平移/傾斜机制将对象定位在屏幕中间。坏消息是为了开始我们必须实时知道对象的位置。但好消息是一旦我们已经拥有了对象中心的坐标,这很容易
首先,让我们使用之前使用的“object_detect_LED”代码并修改它以打印已创建对象的xy坐标。
代码的“核心”是我们找到对象并在其上绘制┅个圆圈的部分其中心有一个红点。
让我们将中心坐标“导出”到mapObjectPosition(int(x)int(y))函数以打印其坐标。功能下方:
运行程序我们将在終端上看到(x,y)位置坐标如上所示。移动对象并观察坐标我们将意识到x从0到500(从左到右),y从o到350(从上到下)见上图。
现在我们必须使用这些坐标作为我们的Pan / Tilt跟踪系统的起点
10.物体位置跟踪系统
我们希望我们的对象始终以屏幕为中心所以,让我们定义一个例子如果符合以下情况我们会认为我们的对象是“居中的”:
在这些边界之外,我们必须移动我们的Pan / Tilt机制以补偿偏差基于此,我们可以构建函數mapServoPosition(xy),如下所示请注意,此函数中用作参数的“x”和“y”与我们之前用于打印中心位置的参数相同:
基于(xy)坐标,使用函数positionServo(伺服角度)生成伺服位置命令。例如假设y位置是“50”,这意味着我们的对象几乎位于屏幕的顶部可以转换为“相机视线”为“低”(假设倾角为120度) 所以我们必须“减少”倾斜角度(让我们说100度),所以相机视线将“向上”并且物体将在屏幕上“向下”(y将增加比方说,190)
上图显示了几何方面的示例。
想想泛相机将如何操作请注意,屏幕没有镜像这意味着如果您将对象移动到“左侧”,一旦您与相机相反它将在屏幕上移动“右侧”。
我们将调用之前显示的脚本进行伺服定位
下面的gif显示了我们项目工作的一个例子:
一如既往,我希望这个项目可以帮助其他人进入激动人心的电子世界!
相关整套源码关注微信公众号:“图像算法”或者微信搜索账号imalg_cn关注公众號