【问题标题】:OpenCV 2.4.8 (Python) Determining Orientation of an ArrowOpenCV 2.4.8 (Python) 确定箭头的方向
【发布时间】:2014-05-17 13:36:38
【问题描述】:

我目前正在做一个需要确定箭头方向的项目。这些箭头将用作机器人的输入,以确定它应该行进的方向。

我在 Ubuntu 和 OpenCV 2.4.8 中使用 Beaglebone Black。我尝试过使用 SURF、ORB、SIFT、Moments 和 BFMatcher。我还没有找到确定箭头方向的可靠方法。这需要实时完成,因为我们将使用视频中的帧。

我想知道是否有人可以提供可靠的解决方案来确定箭头的方向?

这是一个示例图像:

【问题讨论】:

    标签: python-2.7 opencv orientation ubuntu-12.04 beagleboneblack


    【解决方案1】:

    这是一些方法,我认为它适用于您提供的图像。

    由于您的箭头图像的每个角都有如下角度,如下图所示,您始终可以将箭头尖端视为角度接近 90 度的角,以及角度接近 45 度的相邻角。

    也就是找出箭头的尖端,计算形成箭头指针的相邻线的角度,然后将角度相加,这就是你的箭头方向。

    所以试试

    1. 找到contour and approxPolyDP

    2. 查找每条线的角度以及角(相邻线之间的角度)。

    3. 使用上述角点标准搜索箭头的尖端。

    4. 现在你得到了箭头指针和相邻的线(带角度),将这两条线的结果作为你的方向,就是将角度相加。

    另请参阅此link 可能会有所帮助。

    【讨论】:

    • 所以我使用上面发布的图像并运行以下程序:i.imgur.com/0myNfap.png 我得到以下输出:i.imgur.com/yxpqlz7.png 我不确定搜索的最佳方式为了箭头的尖端?
    • @Knoose 使 approxPolyDP() 中的 epsilon 值更高,直到获得总点数 7,因为您的箭头有 7 个角。
    • 我最终使用了 cv2.goodFeaturesToTrack()。我让它在我的箭头的裁剪图像上找到 7 个兴趣点。它工作得很好,因为图像的裁剪删除了我的“道路”线,并且 cv2.goodFeaturesToTrack() 得到了我需要的点。我最终还创建了自己的用于检测方向的算法,它的工作非常可靠。感谢您的帮助!
    • 这对我也很有帮助!谢谢
    • 我为大学项目做了几乎完全相同的事情。经过大量的反复试验,我最终得出了一种非常相似的方法。 github.com/NewDevices/football_project 以防有人感兴趣。寻找object_finder.pyfind_arrow 方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    相关资源
    最近更新 更多