(r,θ)平面有时被称为霍夫空间,用于二维二维直线集合。这种表示使霍夫变换在概念上非常接近二维Radon变换。 (可以将它们看作查看同一变换的不同方法。[5])
它们的输出对我来说看起来是相同的:
Wolfram Alpha:Radon
Wolfram Alpha:Hough
所以我不明白有什么区别。他们只是以不同的方式看待同一件事吗?每个不同的观点有什么好处?为什么不将它们合并为“霍夫-拉登变换”?
#1 楼
Hough变换和Radon变换确实非常相似,它们的关系可以宽松地定义为前者是后者的离散形式。Radon变换是数学积分变换,定义为用于$ \ mathbb {R} ^ n $中超平面上$ \ mathbb {R} ^ n $上的连续函数。另一方面,霍夫变换本质上是一种离散算法,可以通过轮询和合并(或投票)来检测图像中的线条(可扩展到其他形状)。
我认为这是合理的类比两者之间的差异就像
计算随机变量的特征函数作为其概率密度函数(PDF)的傅立叶变换和
序列,通过直方图合并来计算其经验PDF,然后对其进行适当的转换。
但是,霍夫变换是一种快速算法,可能容易出现某些伪像。 on在数学上更可靠,但更准确但更慢。实际上,您可以在Hough变换示例中将工件视为垂直条纹。这是Mathematica中的另一个简单示例: >
最后一张图像确实很微弱,即使我否定了它以深色显示条纹,但它仍然存在。倾斜显示器会有所帮助。您可以单击所有图以查看更大的图像。
两者之间的相似性不是很广为人知的部分原因是因为科学和工程学的不同领域历来仅根据其需求使用这两者之一。例如,在层析成像(医学,地震学等),显微术等中,可能仅使用Radon变换。我认为这样做的原因是将假象保持在最低限度至关重要(假象可能是误诊的肿瘤)。另一方面,在图像处理,计算机视觉等方面,由于速度是主要因素,因此使用的是Hough变换。
您可能会发现这篇文章很有趣且很热门:
M. van Ginkel,CL Luengo Hendriks和LJ van Vliet,对Radon和Hough变换及其相互关系的简短介绍,定量成像小组,影像科学与技术作者认为,尽管您将Hough变换写为连续变换,但两者之间是非常紧密相关的(在其原始定义中)并且等效,但是Radon具有
还存在类似于广义Hough变换的广义Radon变换,它适用于参数化曲线而不是直线。这是处理它的参考:Toft,P. A.,“使用广义Radon变换检测噪声图像中的曲线”,IEEE ICASSP-96,第1卷。 4,2219-2222(1996)
评论
$ \ begingroup $
哦,我认为这些是故意添加到图像中的。没有意识到他们是文物。那么Radon就像DFT一样适合FFT吗?但是,也可以使用通用的Hough变换来查找圆和东西,也许Radon变换可以找到类似的东西?
$ \ endgroup $
– Endolith
2011-10-27 13:55
$ \ begingroup $
是的,存在适用于参数化曲线的广义Radon变换。我认为对于完全任意的曲线来说这样做比较困难,但是我对此并不了解。我已经为我的答案添加了参考。
$ \ endgroup $
–乳香
2011-10-27 14:27
$ \ begingroup $
Radon变换也可以通过FFT方法加快。我猜霍夫不能吗?霍夫还会更快吗?我猜这取决于图像尺寸吗?
$ \ endgroup $
– Endolith
2011年11月24日在20:16
$ \ begingroup $
@endolith根据我的经验,霍夫更快。但是,我对这两者的使用是为了检测我正在摆弄的东西中的几条奇数行。从未在认真的工作中使用过它,也没有实现我自己的。因此,我建议将其作为一个新问题,因为我无法确定地回答。
$ \ endgroup $
–乳香
2011-11-25 23:53
#2 楼
除了Lorem Ipsum将Hough变换解释为Radon变换的离散形式的答案之外,我喜欢这种描述性解释-同样根据Ginkel和其他人的说法:Radon和Hough都是从图像空间到图像空间的映射。 $ \ rho $和$ \ theta $的参数空间,但是它们的观点不同。
虽然Radon变换从图像空间(读取范例)在参数空间中得出一个点,但是Hough变换显式地将图像空间中的数据点映射到参数空间(书写范式)。通过比较它们的(离散)算法,这一点变得很清楚。
对于参数空间中的每个$ \ theta $,Radon使用大小为\\ Delta \ rho $的存储桶将图像点投影在(角度)$ \ theta $描述的线上。手获取每个图像点$(x,y)$并将适当的强度添加到所有相应的参数空间仓中。 $ \ Delta \ theta $和$ \ Delta \ rho $并将像素划分为子像素。
尽管需要执行整个转换,但是霍夫通常更快(无论如何,这是大多数情况下的目的) 。
由于读取范例,Radon仅允许计算参数空间的较短间隔(以$ \ theta $为单位)。如果您具有一些先验知识(例如,您的峰可能位于$ \ the $区间),则可以大大减少计算时间。
我想Hough由于其简单的算法而在许多领域占主导地位,而Radon则在精度至关重要或有先验知识的地方使用。 /help/images/ref/radon.html
www.mathworks.com/help/images/ref/hough.html
评论
嘿,有点无关的问题,但是您可以分享这张照片中使用的Bezier热图颜色方案吗?看起来不错,我想知道您是否有一个$ M \乘以$ 3的RGB值数组来描述它。@DumpsterDoofus我猜我还没有发布它,因为它太笨拙了,我想先打磨它,但是因为我还没有,所以:非贝塞尔曲线版本在这里gist.github.com/endolith/2879736,贝塞尔曲线的尝试在这里.github.com / endolith / ef948b924abf289287bd也用于此处flic.kr/p/dWSfUd
谢谢,我实际上是昨晚想出来的,可以紧凑地写为$ RGB(x)= \ left(\ begin {array} {c}(2-x)x \ text {Boole} [0 \ leq x \ leq 1] \\ x ^ 2 \ text {Boole} [-1 \ leq x \ leq 1] \\ -x(x + 2)\ text {Boole} [-1 \ leq x \ leq 0] \\ \结束{array} \ right)。$
@DumpsterDoofus随时清理我的代码:)
@DumpsterDoofus“官方”版本,位于github.com/endolith/bipolar-colormap