cv::HoughCircles 中的 dp 参数究竟是如何工作的?
How exactly does dp parameter in cv::HoughCircles work?
我在 Stack Overflow 中读到了类似的内容 question。我试过了,但我还是不明白它是如何工作的。
我阅读了OpenCV文档cv::HoughCircles,这里有一些关于dp参数的解释:
Inverse ratio of the accumulator resolution to the image resolution. For example, if dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has half as big width and height.
这是我的问题。比如dp=1,accumulator的大小和image一样,image中的像素点和accumulator中的位置是一致的一一匹配,但是dp=2,怎么匹配?
提前致谢。
这里没有 one-to-one 匹配这样的东西。您确实有一张带有像素和 hough space 的图像,用于为圈子投票。这个参数只是一个方便的方式来指定 hough space 相对于图像大小的大小。
请查看此了解更多详情。
编辑:
您的图片有 (x,y)
坐标。您的圆 space 具有 (a,b,r)
坐标,而 (a,b)
是圆心,r
是半径。假设您找到了一个边缘像素。现在你为每个可以穿过这个边缘像素的圆圈投票。我发现 this 霍夫 space 的漂亮照片有 单 投票,即 单 边缘像素(连续情况)。实际上,这种投票发生在 3D 累加器矩阵中。您可以将其视为这种连续情况的光栅化。
现在,如前所述,dp
参数定义了此累加器矩阵相对于您的图像大小的大小。 dp
参数越大,光栅化的分辨率越低。这就像用不同的分辨率拍摄照片。如果您缩小照片的尺寸,多个像素将减少为一个像素。如果您减少累加器矩阵分别增加 dp
参数,也会发生同样的情况。不同圆心(彼此相邻)和半径(大小相似)的多个投票现在合并,即您确实获得了不太准确的圆参数,但更多 "robust" 投票。
请注意,OpenCV 的实现稍微复杂一些(他们使用霍夫梯度法而不是标准的霍夫变换),但注意事项仍然适用。
我在 Stack Overflow 中读到了类似的内容 question。我试过了,但我还是不明白它是如何工作的。
我阅读了OpenCV文档cv::HoughCircles,这里有一些关于dp参数的解释:
Inverse ratio of the accumulator resolution to the image resolution. For example, if dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has half as big width and height.
这是我的问题。比如dp=1,accumulator的大小和image一样,image中的像素点和accumulator中的位置是一致的一一匹配,但是dp=2,怎么匹配?
提前致谢。
这里没有 one-to-one 匹配这样的东西。您确实有一张带有像素和 hough space 的图像,用于为圈子投票。这个参数只是一个方便的方式来指定 hough space 相对于图像大小的大小。
请查看此
编辑:
您的图片有 (x,y)
坐标。您的圆 space 具有 (a,b,r)
坐标,而 (a,b)
是圆心,r
是半径。假设您找到了一个边缘像素。现在你为每个可以穿过这个边缘像素的圆圈投票。我发现 this 霍夫 space 的漂亮照片有 单 投票,即 单 边缘像素(连续情况)。实际上,这种投票发生在 3D 累加器矩阵中。您可以将其视为这种连续情况的光栅化。
现在,如前所述,dp
参数定义了此累加器矩阵相对于您的图像大小的大小。 dp
参数越大,光栅化的分辨率越低。这就像用不同的分辨率拍摄照片。如果您缩小照片的尺寸,多个像素将减少为一个像素。如果您减少累加器矩阵分别增加 dp
参数,也会发生同样的情况。不同圆心(彼此相邻)和半径(大小相似)的多个投票现在合并,即您确实获得了不太准确的圆参数,但更多 "robust" 投票。
请注意,OpenCV 的实现稍微复杂一些(他们使用霍夫梯度法而不是标准的霍夫变换),但注意事项仍然适用。