当前位置: 首页 > 面试题库 >

在Circle Hough变换中,累加器分辨率(dp)的反比是什么,它如何影响圆的检测?

单勇
2023-03-14
问题内容

OpenCV文档指出:

dp:累加器分辨率与图像分辨率的反比。例如,如果dp = 1,则累加器具有与输入图像相同的分辨率。如果dp = 2,则累加器的宽度和高度是其一半。

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


问题答案:

在霍夫变换期间,您将输入图像变换为所谓的霍夫空间。尝试查找圆时,它是3维的(三个维是圆心和半径的坐标)。在转换期间,输入图像中的每个边缘像素都会对像素可能位于的所有可能的圆圈进行投票。

您可以将投票视为在3维矩阵(宽空间)内增加多个值。投票后,您将在此矩阵内搜索最大值,并读取圆心及其半径。

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

但是,检测越准确,就越有可能遗漏稍微退化的圆圈或检测多个圆圈而不是边缘较大的圆圈。



 类似资料:
  • 一、概率DP 顾名思义,概率DP就是动态规划求概率的问题。一般来说,我们将dp数组存放的数据定义为到达此状态的概率,那么我们初值设置就是所有初始状态概率为1,最终答案就是终末状态dp值了。 我们在进行状态转移时,是从初始状态向终末状态顺推,转移方程中大致思路是按照当前状态去往不同状态的位置概率转移更新DP,且大部分是加法。 二、期望DP 用于求解期望的DP。这类问题一般将dp数组存放的数据定义为到

  • 我遇到了关于模板重载解析的有趣行为,在发布版本和调试版本之间有所不同。我希望能够理解编译器/链接器使用的规则,这些规则使它以这种方式运行。< br >我尝试了一下,这是我想到的: S. h S.cpp main.cpp 我尝试编译相应的编译单元(S.cpp.o,main.cpp.o和生成的二进制文件)。我发现结果完全取决于main.cpp.o编译的优化水平。 使用 时,输出为 。 使用 时,输出为

  • 问题内容: 我只是想知道我是否有可能在Pygame中获得显示器的分辨率,然后使用这些尺寸创建一个窗口,以便启动程序来检测显示器的分辨率,然后将窗口自动适合全屏显示。 我目前正在使用该窗口。我知道您可以使用来获得包括显示器分辨率在内的视频信息,但是如何提取这些值,然后在???中使用它们呢? 在此先感谢Ilmiont 问题答案: 您可以使用: 该文件说: current_h,current_w:当前视

  • 问题内容: 获得监视器分辨率(最好是在元组中)的最简单方法是什么? python 屏幕 分辨率 问题答案: 在Windows上: 如果使用高分辨率屏幕,请确保你的python解释器为HIGHDPIAWARE。

  • 问题内容: 有没有一种方法可以适用于所有浏览器? 问题答案: 原始答案 是。 更新 要获得移动设备的原始分辨率,您必须乘以设备像素比率:和。比率也为1的台式机也可以使用。 从本(Ben)得到另一个答案: 在原始JavaScript中,这将为您提供可用的宽度/高度: 对于绝对宽度/高度,请使用:

  • 问题内容: 我想用Java模拟TCP。 为此,我有多个线程,例如每个TCP连接的发送者和接收者线程。 我的问题是,我想暂停(如Thread.sleep())线程数微秒的时间间隔。这样我就可以模拟流控制,发送者线程将在发送下一个数据包之前阻塞几微秒,同时接收和数据处理线程可以使用CPU。但是我找不到任何执行sleep()或wait()的方法来获得微秒或纳秒分辨率。如何以微秒或纳秒分辨率阻塞(暂停)J