我有一个履带式机器人玩具,正在用iPhone控制它。机器人会输出一个已知帧大小的实时摄像头供稿,然后将其显示在UIImage上。
我向机器人添加了激光指示器,并将其固定在机器人的轴上。我试图检测图像上的激光指示器点,从而尝试计算物体的接近度。如果激光点距离中心较远,我知道机器人被卡在墙上,需要备份。
如何检测屏幕上明亮的白红色像素点?一种解决方案是对中心一定半径内的像素颜色进行采样并检测斑点明亮的颜色。谁能为此活动提出算法?
另一种方法是跟踪最后几帧上点的平均位置,从而减小猜测半径。如果在预定义区域内没有点,则可以扩展搜索区域。
最后,我希望能够教机器人检测周围的地毯。地毯以某种方式反射激光笔,我想了解一下机器人周围有多少帧具有相似的属性。如果我知道激光指示器在屏幕上的位置,则可以从该图像中裁剪一个小矩形并将它们相互比较。有没有一种有效的方法可以将多个小图像相互比较,以了解它们的轮廓是否匹配?
我注意到激光是从光滑的表面反射回来的,根据折射定律,这种反射的方向可能告诉我一些关于空间在空间中的方向的信息。
谢谢!