我想创建一个程序,可以识别视频源中的箭头并确定它们指向的方向(左或右)。我的目标是将这个程序与arduino机器人一起使用,以确定机器人应该移动的方向。
我的问题是使用哪种方法。我将选项缩小到模板匹配或SURF。模板匹配很好,因为它是旋转独立的,因此它可以确定左右箭头之间。但是,由于机器人将移动,模板箭头的大小可能不等于视频源的大小,导致没有匹配。
SURF解决了这个问题,但它是旋转不变的。这意味着左箭头和右箭头将被视为相同的东西。
任何人都可以建议我可以用于此计划的方法。
提前感谢您提供任何帮助
P.S我将使用OpenCV进行实施。
答案 0 :(得分:2)
我设法通过使用canny边缘检测和HoughLinesP来解决问题。该系统运行良好,但旋转范围有限,可正确检测方向(约15度)。
基本上我首先执行颜色检测以检测箭头,然后使用houghlinesp查找其轮廓。在这些线中,我消除了所有水平或垂直的线,只留下尖端的那些,如红色所示。然后我使用每条线的终点来确定方向。