霍夫变换--检测直线
作者:互联网
霍夫变换
将笛卡尔坐标系的直线用统计展示
坐标系A中的点=坐标系B中的线
坐标系A中的线=坐标系B中的点
A中多点的连线=B中多曲线的交点
先理解这样一个思维
- 左边的x-y坐标系中,设定k,b定值,则有一系列x,y值组成直线。
- 相应的在右边k-b坐标系中,k,b为定值,即为一个点。
- 也就是y=k*x+b在x-y坐标系中是直线,在k-b坐标系中是一个点。
- 同理x-y坐标系中直线,对应k-b坐标系中的点
那么x-y坐标系中,点A对应k-b坐标系的绿直线,点B对应k-b坐标系的红直线,连接A-B两点的直线对应,红绿直线的交点(这里呼应了上一部分第4点)。
直角坐标系和极坐标系的转换
如果你理解了上面的点→直线和直线→点的思维,现在来用同样的思维看直角坐标系和极坐标系
预备知识:
对于笛卡尔系的点(x,y),我们可以用极坐标系的点(r,θ)来表示,点点转换关系:
x=rcosθ
y=rsinθ
x²+y²=r²
现在推导点线关系
先给出结论:
r=xcosθ+ysinθ
直线(x1,y1)(x2,y2)的斜率有两种表达,可以借此建立等式
推导过程如下:
**定义式求斜率**:
k=tan(θ+90°)=-cosθ/sinθ (1)
设橙色点极坐标(r,θ),该点直角坐标点是(rcosθ,rsinθ),故**两点式求斜率**:
k=(y1-rsinθ)/(x1-rcosθ) (2)
由式(1)(2)得:
r=x1cosθ+y1sinθ
通用:r=xcosθ+ysinθ
由上方推导,当有点(x1,y1)时,会有很多个点(r,θ)符合,他们连接起来就是一条曲线,得到结论:
- 直角坐标系的点,映射为极坐标的一条曲线
同理:
- 直角坐标系的线,映射为极坐标的一个点
同理:
- 直角坐标系的两个点连接成的线,映射为极坐标的一个点
实际应用需要离散化
标签:直线,一个点,变换,直角坐标,霍夫,坐标系,y1,极坐标 来源: https://www.cnblogs.com/thgpddl/p/12548181.html