一、原理
参考
霍夫变换,如果有课本的话参考冈萨雷斯的图像处理课本及matlab版本的课本最好,如果没有就看下这节的原理描述。
直角坐标系中对于直线方程有如下等式:
ρ=x∗cosθ+y∗sinθ(ρ≥0)
其中
ρ为坐标原点到直线的距离,
θ为
ρ 与x轴正方向的夹角,x、y为直线上的点:
对于直线上任意一个已知的点
(x0,y0)有:
ρ=x0∗cosθ+y0∗sinθ,则该函数是关于
ρ和
θ的方程。
所以,对于图像上的任意一个像素点都有上述方程成立,亦即对于图像上的任意一个点,在霍夫变换后的参数空间内
(θ,ρ)都可以找到一条三角函数曲线与其对应。图像上的任意两个点,即对应两条曲线,那么这两条曲线必然会产生一个交点
(θ0,ρ0),这个交点再放到直线方程中,即可确定一条直线(也正是图像上这两个点所确立的直线)。
由此推断,图像上在同一条直线(图像上应该是一个线段)上的点所产生的曲线都会在参数空间相交于一个点
(θ0,ρ0),直线的长度越长(点越多),那么交于该点的曲线也越多。
所以,在图像上找直线可以演变成在霍夫变化后参数空间(霍夫图像)中找曲线相交次数最多的点。
代码
平台:Ti的DSP系列
语言:C