tun*_*_53 5 opencv curve-fitting hough-transform
给定图像上的一组点,我想检测对齐点的组,如图所示:

我怎样才能做到这一点?任何帮助将不胜感激.
这是霍夫变换的一个很好的潜在应用.线的霍夫空间是(r,\ theta),其中r是从原点到线上最近点的距离,\ theta是它的方向.
xy空间中的每个点在Hough空间中变成正弦曲线,如Wiki文章中所示.
所有正弦曲线相交的位置对应于穿过所有点的单条线.如果这些点不是完全共线的,则交点将是"模糊的".
将线拟合到点的最简单算法是使矩形(r,\ theta)累加器阵列最初设置为零.然后跟踪每个点的正弦曲线到这个离散的(r,\ theta)空间,将每个累加器元素递增一个固定的量.通过查找大型数组元素来查找预期的线条拟合.元素坐标给出拟合的(r,\ theta).
追踪正弦曲线很简单.如果在\ theta轴上有T个累加器箱,则每个对应于某个0 <= k <T的角度k(\ pi)/ N.因此对于此范围内的k,计算从原点到最近点的距离这个方向的线穿过该点.这提供了r值.如果R轴上有R个区间且Rmax是r的最大值,则增加bin(floor(r/rMax*R),k).
首先,您可以尝试以下操作:
列出通过选择这些点中的任意两个可以形成的所有线(n(n-1)/2一个代表n点)。
对于其中任意两条线,检查它们是否对齐(即斜率差异在 10 度以内)。
对于每条对齐的线对,您可以轻松检查其他点是否也在这些线上对齐。这些点将是您需要的对齐点。
| 归档时间: |
|
| 查看次数: |
1909 次 |
| 最近记录: |