【问题标题】:Explain Hough Transformation解释霍夫变换
【发布时间】:2020-11-21 09:34:22
【问题描述】:

我只是在冒险,迈出了迈向计算机视觉的第一步。我试图自己实现霍夫变换,但我并没有得到全貌。我阅读了维基百科条目,甚至阅读了理查德杜达和彼得哈特的原始“使用霍夫变换检测图片中的线条和曲线”,但没有帮助。

有人可以用更友好的语言向我解释吗?

【问题讨论】:

    标签: image-processing geometry computer-vision hough-transform pattern-recognition


    【解决方案1】:

    以下是关于霍夫变换如何检测图像中线条的非常基本的直观说明:

    【讨论】:

    • 很好的例子!可能需要一点,您提到沿边缘画线并将这些边缘显示为点,这很好,但实际上这些线只是与边缘相切。
    • @mlai,您创建了这张图片吗?如果可以,我可以将它用于我的硕士论文吗?如果不能,你能告诉我你从哪里得到的吗?我喜欢它?!?!谢谢
    • @ScottAlistair 谢谢!是的,我确实自己创造了它。请随时为您的论文使用它。
    • 精彩的解释。
    • 这真是令人难以置信的 mlai,谢谢你把它放在一起。
    【解决方案2】:

    通常认为直线是矩形坐标,即y = mx + b。正如维基百科文章所述,一条线也可以用极坐标表示。 Hough 变换利用了这种表示形式的变化(无论如何,对于线。讨论也可以应用于圆、椭圆等)。

    霍夫变换的第一步是将图像缩减为一组边缘。 Canny 边缘检测器是一种常见的选择。生成的边缘图像用作 Hough 过程的输入。

    总而言之,边缘图像中“点亮”的像素被转换为极坐标形式,即它们的位置使用方向 theta 和距离 r 表示 - 而不是xy。 (图像的中心通常用作这种坐标变化的参考点。)

    霍夫变换本质上是一个直方图。假设映射到相同 theta 和 r 的边缘像素定义了图像中的一条线。为了计算出现频率,thetar 被离散化(划分为多个 bin)。一旦所有边缘像素都转换为极坐标形式,就会分析这些 bin 以确定原始图像中的线条。

    通常会寻找 N 个最频繁的参数 - 或阈值参数,使得计数小于某些 n 的参数被忽略。

    我不确定这个答案是否比您最初提供的来源更好 - 您是否有一个特别的问题?

    【讨论】:

    • 你的回答很好。它重新保证了我在其他地方读过的东西。下面提供的答案 Ray H 也告诉了我难以想象的事情:计算了所有可能的参数组合。所以我只是通过不同的方式听到它,我的头脑变得更加清晰。
    • 有一个很酷的javascript工具可以查看http://gmarty.github.io/hough-transform-js/的投票空间
    【解决方案3】:

    霍夫变换是一种寻找最有可能代表一条线(或一个圆,或许多其他事物)的值的方法。

    你给霍夫变换一张线的图片作为输入。这张图片将包含两种类型的像素:一种是线条的一部分,另一种是背景的一部分。

    对于线中的每个像素,都会计算所有可能的参数组合。例如,如果坐标 (1, 100) 处的像素是直线的一部分,那么它可能是梯度 (m) = 0 且 y 截距 (c) = 100 的直线的一部分。它也可以成为 m = 1, c = 99 的一部分;或 m = 2,c = 98;或 m = 3,c = 97;等等。您可以求解直线方程 y = mx + c 以找到所有可能的组合。

    每个像素对可以解释它的每个参数(m 和 c)投一票。所以你可以想象,如果你的行中有 1000 个像素,那么 m 和 c 的正确组合将有 1000 票。

    得票最多的 m 和 c 的组合作为该行的参数返回。

    【讨论】:

      【解决方案4】:

      这是另一种观点(在电视节目 Numbers 的试播集中使用过):想象一下,一个喷泉式的草坪洒水器早些时候在草坪上的某个地方,在其周围喷出水滴。现在洒水器不见了,但水滴还在。想象一下,将每一滴水滴变成自己的洒水器,它自己将水滴洒在自己周围——向各个方向,因为水滴不知道它来自哪个方向。这会将大量的水分散在地面上,但会有一个地方会同时从所有水滴中溅出大量的水。那个地方就是原来的洒水器所在的地方。

      对(例如)线检测的应用是类似的。图像中的每个点都是原始液滴之一;当它充当洒水器时,它会发送自己的液滴,标记所有可能通过该点的线条。大量二次液滴降落的地方代表通过大量图像点的线的参数 - 瞧!检测到线路!

      【讨论】:

        猜你喜欢
        • 2019-10-26
        • 1970-01-01
        • 1970-01-01
        • 2017-04-18
        • 2014-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多