关于广义霍夫变换代码
About generalized hough transform code
我正在寻找广义霍夫变换的实现,然后我找到了这个网站,它向我展示了GHT的完整实现。
我完全可以理解算法的处理方式,除了这个:
Vec2i referenceP = Vec2i(id_max[0]*rangeXY+(rangeXY+1)/2, id_max[1]*rangeXY+(rangeXY+1)/2);
它根据霍夫空间的最大值计算物体的参考点,然后通过rangXY
多次返回原点图像的相应位置。(rangeXY
是分割图像的正方形的像素尺寸。
我编辑了代码以
Vec2i referenceP = Vec2i(id_max[0]*rangeXY, id_max[1]*rangeXY);
我得到了另一个参考点,然后在图像中显示所有边缘点,这显然不适合形状。
我只是无法弄清楚(rangeXY+1)/2
因素是什么意思。
是否有任何已经实现此代码或熟悉 GHT 基本原理的人可以告诉我rangeXY
因素的含义?谢谢~
我熟悉经典的霍夫变换,但不熟悉广义变换。但是,我相信您在问题中提供了足够的信息,让我在不熟悉相关算法的情况下回答它。
(rangeXY+1)/2
只是整数除以 2 并四舍五入。例如,(4+1)/2
给出 2,而 (5+1)/2
给出 3(2.5 舍入(。现在,由于rangeXY
是像素正方形块的边,id_max
是该块的位置(索引(,因此id_max[dim]*rangeXY+(rangeXY+1)/2
给出了该块中中心像素的位置。
另一方面,当您将表达式简化为id_max[dim]*rangeXY
时,您将获得左上角的位置而不是中央像素的位置。
相关文章:
- 为什么指标有时效果很好,有时效果不佳?写下霍夫曼代码
- 如何存储霍夫曼转换后的二进制代码?
- 霍夫曼压缩机/解压缩器
- 关于广义霍夫变换代码
- 霍夫曼编码 c++
- 霍夫曼解码功能反复反复压缩一个字符
- 霍夫曼解码压缩文件
- 霍夫曼以位存储代码
- 带有查找表的霍夫曼代码
- 使用 std::unique_ptr 的霍夫曼树代码不起作用
- 霍夫曼代码,树的初始输入有问题
- 霍夫曼代码 - 分段错误 11.
- OpenCV:使用霍夫圆圈变换来检测虹膜
- 霍夫变换和板定位
- 实时视频上的霍夫线变换会导致断点
- 在霍夫曼压缩后将代码表存储在压缩文件中,并从此表构建用于解压缩的树
- 霍夫变换
- 广义霍夫变换与OpenCv
- 如何在OpenCV麦田圈(发现与霍夫变换)
- 如何使用霍夫曼代码压缩文件