Hough变换:
原理:将一个空间映射到另一个空间。这里是将X,Y空间映射到R,Φ空间。看下图:左图是X,Y空间的直线,该直线方程:y=kx + b,确定方程的参数k,b也可以组成一个空间,这个空间中的一个点k0,b0就可以表示为X,Y空间中的一条直线 。即通过空间变换使得直线映射成了点。
因为这个k,b空间不好用,所以采用了另一种R,Φ空间,见下图。
根据:
X,Y坐标系中的一个点映射到R,Φ空间就是一条曲线。直观的理解就是在X,Y坐标系中,围绕坐标点 (x0,y0)可形成无数根直线,这无数根直线对应的R和Φ值就在R和Φ空间形成了无数个点,这些点构成一条曲线。
那么在X,Y坐标系中如果有两个点共线,表现在R,Φ空间就是共点。
我们只需要找到共点的地方就可以找出X,Y坐标系的直线。
这就是基本的原理,实现过程中我们并不可能真的绕点做无数根直线,所以需要离散化的做适当多的直线。
最终还需要在R,Φ空间中找到极值点,这些点才是真正的直线。
总体来说原理简单,但是实现起来,计算量大。
参考:
- https://blog.youkuaiyun.com/ws_20100/article/details/51159434
- https://blog.youkuaiyun.com/weixin_41730407/article/details/80314892