【问题标题】:Perform Canny Edge Detection twice --> better line-detection?执行 Canny 边缘检测两次 --> 更好的线检测?
【发布时间】:2014-01-17 14:41:09
【问题描述】:

我正在使用 EmguCV(OpenCV 的 .NET 版本)开展一个项目,并且我正在使用概率霍夫变换来查找线条。

所以一开始我是在表演精明算子。然后进行霍夫变换。

Gray cannyThreshold = new Gray(50);
Gray cannyThresholdLinking = new Gray(300);

Image<Gray, Byte> cannyEdges = gray.Canny(cannyThreshold, cannyThresholdLinking);

LineSegment2D[] linesFound_temporary = cannyEdges.HoughLines
(
    cannyThreshold,         // 1. Parameter
    cannyThresholdLinking,  // 2. Parameter
    1,                      // 3. Parameter
    Math.PI / 360.0,        // 4. Parameter
    gray.Width * 0.2,       // 5. Parameter
    gray.Width * 0.4,       // 6. Parameter
    gray.Width * 0.1        // 7. Parameter
)[0];

后来我意识到HoughLines-Method已经集成了canny边缘检测。

尽管如此,当我使用额外的精明检测而不是将其排除在外时,我的线路检测结果会更好、更稳定。

谁能给我解释一下,为什么会这样?或者有没有人有同样的经历?

【问题讨论】:

    标签: emgucv edge-detection hough-transform


    【解决方案1】:

    我在做我的一个项目时也遇到了同样的情况。我认为这取决于给这两个函数的参数。如果第一个 canny 删除了太多信息并且没有行,那么第二个函数就会很糟糕。如果您进行“第一次通过”,删除大部分信息但留下非常明显的线条,那么霍夫线几乎没有什么用。但是我发现通过第一次调整霍夫线的参数可以达到几乎相同的结果。

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-30
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多