我通过学习CT扫描熟悉Radon变换,但不熟悉Hough变换。维基百科说
对于二维的一组直线,(r,θ)平面有时称为Hough空间。这种表示使霍夫变换在概念上非常接近二维Radon变换。(可以将它们视为查看同一变换的不同方法。[5])
在我看来,它们的输出是相同的:
所以我不知道有什么区别。他们只是以不同的方式看待同一件事吗?每个不同的观点有什么好处?为什么不将它们合并为“霍夫-拉登变换”?
我通过学习CT扫描熟悉Radon变换,但不熟悉Hough变换。维基百科说
对于二维的一组直线,(r,θ)平面有时称为Hough空间。这种表示使霍夫变换在概念上非常接近二维Radon变换。(可以将它们视为查看同一变换的不同方法。[5])
在我看来,它们的输出是相同的:
所以我不知道有什么区别。他们只是以不同的方式看待同一件事吗?每个不同的观点有什么好处?为什么不将它们合并为“霍夫-拉登变换”?
Answers:
Hough变换和Radon变换确实非常相似,它们的关系可以宽松地定义为前者是后者的离散形式。
Radon变换是一个数学积分变换,对连续函数定义上在超平面。另一方面,霍夫变换本质上是一种离散算法,可以通过轮询和合并(或投票)来检测图像中的线条(可扩展到其他形状)。ř Ñ
我认为对两者之间的差异进行合理的类比就像
但是,霍夫变换是一种快速算法,容易产生某些伪像。on在数学上更可靠,但更准确但更慢。实际上,您可以在Hough变换示例中将工件视为垂直条纹。这是Mathematica中的另一个快速示例:
img = Import["http://i.stack.imgur.com/mODZj.gif"];
radon = Radon[img, Method -> "Radon"];
hough = Radon[img, Method -> "Hough"];
GraphicsRow[{#1, #2, ColorNegate@ImageDifference[#1, #2]} & @@ {radon,hough}]
即使我否定了它以显示深色条纹,但最后一张图像确实很模糊,但它确实存在。倾斜显示器会有所帮助。您可以单击所有图以查看更大的图像。
两者之间的相似性不是很广为人知的部分原因是因为不同的科学与工程领域历来仅根据其需求使用这两者之一。例如,在层析成像(医学,地震学等),显微术等中,可能只使用Radon变换。我认为这样做的原因是将假象保持在最低限度至关重要(假象可能是误诊的肿瘤)。另一方面,在图像处理,计算机视觉等中,因为速度是主要因素,所以使用了霍夫变换。
您可能会发现这篇文章很有趣且很热门:
M. van Ginkel,CL Luengo Hendriks和LJ van Vliet,对Radon和Hough变换及其相互关系的简短介绍,代尔夫特大学成像科学与技术系定量成像小组
作者认为,如果将霍夫变换写成连续变换,尽管两者之间关系非常密切(按照其原始定义)并且等效,但是Radon的优点是更直观并且具有扎实的数学基础。
还有一个类似于广义霍夫变换的广义Radon变换,它适用于参数化曲线而不是直线。这是处理它的参考:
宾夕法尼亚州Toft,“使用广义Radon变换检测噪声图像中的曲线”,IEEE ICASSP-96,第1卷。4,2219-2222(1996)
除了Lorem Ipsum将Hough变换解释为Radon变换的离散形式的答案之外,我还喜欢这种描述性解释-同样根据Ginkel和其他人的说法:
Radon和Hough都是从图像空间到和参数空间的映射,但是它们的观点不同。Radon变换从图像空间(读取范例)派生参数空间中的点,而Hough变换则将图像空间中的数据点显式映射到参数空间(编写范例)。θ
通过比较它们的(离散)算法,这一点变得很清楚。对于参数空间中的每个,Radon 使用大小为存储桶将图像点投影在由(角度)描述的线上。另一方面,霍夫拍摄每个图像点,并将适当的强度添加到所有相应的参数空间仓中。θ Δ ρ (X ,ÿ )
结果,霍夫遭受了伪影,而Rad子则允许在参数空间中实现高分辨率(通过调整和并将像素划分为子像素)。Δ ρ
尽管需要执行整个转换,但是霍夫通常更快(无论如何,这是大多数情况下的目的)。由于读取范例, Radon仅允许计算参数空间的较短间隔(以)。如果您具有一些先验知识(例如,峰值可能位于间隔中),则可以大大减少计算时间。θ
我猜霍夫因其简单的算法而在许多领域占主导地位,而拉顿则用于精度至关重要或已有先验知识的地方。
另请参见Matlab参考(展开“ 算法”标签):