【问题标题】:How does the CImg hough implementation work?CImg hough 实施如何工作?
【发布时间】:2016-03-28 17:26:10
【问题描述】:

Here is the example Hough Transform from the CImg library

我正试图弄清楚这个实现是如何工作的,因为它与您在网上可能找到的其他实现有很大不同。

据我了解,对于霍夫变换,您需要遍历每个边缘点并计算 180 度的 rho/theta 值以填充该字段。

但是在 CImg 实现中,当你按下空格键时,程序只是循环遍历每个像素并计算一次 rho/theta,最后它仍然会生成正确的结果。

我正在尝试在没有任何库帮助的情况下自行实现此功能,但我无法弄清楚它是如何工作的。我认为“魔法”发生在循环之前拍摄的 2 张渐变图像之间,但我似乎无法弄清楚。

谁能指出我正确的方向?

【问题讨论】:

    标签: c++ image-processing hough-transform cimg


    【解决方案1】:
    double
      gx = grad[0](x,y),
      gy = grad[1](x,y);
    double
      theta = std::atan2(gy,gx);
    

    计算渐变的方向。通过这种方式,我们无需为每个点循环 180° 即可获得 theta。

    我认为这基本上是一个Sobel操作:

    https://en.m.wikipedia.org/wiki/Sobel_operator

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 2019-03-03
      • 2012-04-19
      • 1970-01-01
      • 2013-08-17
      • 2018-12-13
      相关资源
      最近更新 更多