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