【问题标题】:Which edge detection algorithm in OpenCV suitable for detecting objects?OpenCV中哪种边缘检测算法适合检测物体?
【发布时间】:2013-07-01 10:04:21
【问题描述】:

我必须制作一个机器人,它必须在充满岩石的竞技场中自主克服障碍。机器人必须找到通过该区域的方式并到达终点。我正在考虑使用像 canny 和 sobel 这样的边缘检测算子来解决这个问题。

我想知道这些是否适合解决此问题。如果是这样,那么在检测到边缘之后,我怎样才能让机器人找到路径,克服岩石障碍?

我正在使用 QT IDE 和 opencv 库。

【问题讨论】:

  • 欢迎使用 stackoverflow。这是一个太宽泛的问题,您需要将其缩小到一个特定的问题,并且最好提及您已经尝试过的内容。您可能会按原样结束您的问题。

标签: opencv edge-detection object-detection


【解决方案1】:

由于您将分析视频帧,并且机器人大部分时间都在移动,因此图像差异和光流也会有所帮助。除非环境和障碍物很简单并且具有已知属性,否则仅靠边缘检测可能没有多大帮助。发布现场照片可以帮助那些想要回答问题的人。

【讨论】:

    【解决方案2】:

    是的,canny 是一个非常好的边缘检测器。事实上,opencv 实现使用 sobel 来获得梯度估计。在边缘检测之前,您可能需要对图像应用高斯滤波器。边缘是寻找岩石的好特征,但根据背景的不同,颜色等其他特征也可能有用。如果您通过立体、激光扫描仪或类似 kinect 的传感器收集 3D 场景信息,可能会更容易。还可以考虑检测您何时撞到岩石并建立它们所在位置的地图。

    【讨论】:

      【解决方案3】:

      您可以使用轮廓来检测任何物体。您可以通过找到轮廓的面积来估计它的大小。然后你可以使用矩来找到对象的中心。

      【讨论】:

        猜你喜欢
        • 2019-09-18
        • 2018-06-29
        • 2017-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多