opencv - 霍夫变换累加器设置 (rho)
问题描述
我一直在研究card.io的算法,在阅读霍夫变换脚本时遇到了一些困难。
对于霍夫变换,需要设置累加器,一个将投票存储在 (rho, theta) 空间中的网格。
在card.io-dmz/cv/hough.cpp
(https://github.com/card-io/card.io-dmz/blob/master/cv/hough.cpp#L99)第 99 行,它表示 rho 的数量由numrho
下式给出
numrho = cvRound(((width + height) * 2 + 1) / rho);
这里width
和height
是 ROI 的维度,rho
是距离分辨率。
问题:我不明白为什么分子是(width + height) * 2 + 1
。
我的猜测是+ 1
计算零值,同时* 2
计算 +ve rho 和 -ve rho。
但我还是不明白为什么会width + height
出现。我认为用 替换它更直观sqrt(width*width + height*height)
,这是 rho 中可能的最大值。
此设置也用于 OpenCV(请参阅此链接:https ://github.com/opencv/opencv/blob/master/modules/imgproc/src/hough.cpp#L128 )
任何帮助,将不胜感激。谢谢
解决方案
推荐阅读
- html - 为什么 Bootstrap 导航栏在响应模式下很好,但在智能手机中显示不正确
- latex - 强制在 LaTeX 中放置图形,而不以任何方式影响格式
- java - 检查列表B中存在的列表A中元素的数量 java
- vert.x - 在vertx中,首先netty在池化直接缓冲区中读取数据,然后vertx将缓冲区转移到非池化堆缓冲区,为什么?
- python - 无法通过 Python 获取 Web 表数据
- angular - 尝试从 service.ts 角度调用应用程序组件时,观察者功能在应用程序组件中不起作用
- javascript - 如何在带有 Flask 的 javascript 脚本中使用 fetch api 的结果
- angularjs - 如何在离子元素的Angular中同一组件的不同形式中使用多次自动对焦属性?
- hyperledger-fabric - Hyperledger Fabric 2.3 开发环境设置 mkdir:无法创建目录“构建”:权限被拒绝
- testing - 运行 Appium 测试时出现会话异常错误