java - 在圆霍夫变换中,累加器分辨率 (dp) 的反比​​是多少?它如何影响圆检测?

标签 java android opencv computer-vision

OpenCV 文档指出:

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.

但它没有说明该值的大小如何影响圆检测。我以为累加器只是最大值的集合,它怎么有分辨率?

最佳答案

在霍夫变换期间,您将输入图像转换为所谓的霍夫空间。求圆是3维的(3维是圆心和半径的坐标)。在转换过程中,输入图像中的每个边缘像素都会为该像素可能位于的所有可能圆圈投票。

您可以将投票视为增加 3 维矩阵(霍夫空间)中的多个值。投票后,您在该矩阵中搜索最高值并读取圆心及其半径。

矩阵越大(与输入图像相比)(dp 越小),投票的分辨率就越高。分辨率越高,圆检测越准确。

然而,检测越准确,就越有可能例如错过轻微退化的圆圈或检测到多个圆圈而不是一个具有大边缘的圆圈。

关于java - 在圆霍夫变换中,累加器分辨率 (dp) 的反比​​是多少?它如何影响圆检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33544411/

相关文章:

java - 序列化和子类

c# - Xamarin 工作室 "Error XA5209: Unzipping failed. Please download"

c++ - 将 MAT 图像复制到 C++ 中的特定地址

java - 检索 h :inputHidden inside a p:commandButton action attribute

java - Java新手,已经出错了

javascript - 通过socket发送和接收数据 : Node. JS服务器、Java客户端

java - 使用 System.loadLibrary 调用加载共享库永远不会返回

python - 如何[使用 Python] 创建 SIFT 的描述符数据库?

opencv - Boost multiarray vs OpenCV Mat

java - 无法使用 testng 和 maven 生成 allure 报告