【问题标题】:Image Edge Detection in C++C++ 中的图像边缘检测
【发布时间】:2011-06-25 16:31:11
【问题描述】:

我正在尝试找到一种方法来确定边缘检测的正确性。我希望它有一些标记来显示程序确定边缘的位置,例如 x 或点或线。我正在寻找可以做到这一点的东西:http://en.wikipedia.org/wiki/File:Corner.png

【问题讨论】:

  • 不要将边缘检测与角点检测混为一谈en.wikipedia.org/wiki/Corner_detection
  • 如果你想要角点(特征)检测,请选择 SIFT。如果您搜索 google,则有一个 matlab 文件。如果你想要边缘检测去 canny,已经内置在 matlab 中

标签: c++ image matlab edge-detection


【解决方案1】:

该图像不是边缘检测操作的结果!这是corner detection。它们的目的完全不同:

角点检测是一种使用的方法 在计算机视觉系统中 提取某些类型的特征和 推断图像的内容。角落 检测经常在运动中使用 检测、图像匹配、跟踪、 图像拼接,全景拼接, 3D建模和物体识别。 角点检测与 兴趣点检测主题。

OpenCV 具有 corner detection 算法。最新链接包括 VS 2008 的 source code example。您也可以使用 check this link 作为另一个示例。 Google 可以提供更多。

【讨论】:

    【解决方案2】:

    您链接到的图像不是边缘检测。

    边缘检测通常只是在灰度图像中发现突然的亮度变化 - 你可以通过差异来做到这一点 - 例如。索贝尔算子。

    使用 SIFT 或类似高斯拉普拉斯算子的方法来专门寻找角点

    【讨论】:

    • 是的,我知道。这只是我正在寻找的一个例子
    【解决方案3】:

    OpenCV 有一个edge detector 并且可以在 C++ 中使用。碰巧,您链接到的图像在描述(其中一个)内置算法的文章中使用。

    【讨论】:

    • 是的,但它是否有关于程序确定边缘在哪里的标记
    • 边缘检测器的结果将是一个包含所有检测到边缘的图像(大部分为白色)。您可以将其与原始图像重叠,然后将所有重叠像素涂成红色。您最终应该会得到类似于您所期望的结果。
    • 您可能还想看看 OpenCV 实现的其他一些特征检测器 (opencv.willowgarage.com/documentation/feature_detection.html)
    猜你喜欢
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    相关资源
    最近更新 更多