霍夫变换
关于霍夫变换的一些看法:
- 给点连线,但首先得界定这些点在哪些像素。
- 霍夫空间的坐标系是笛卡尔坐标系某个线集L的方程的参数,霍夫空间某条有意义的线l代表着在笛卡尔坐标中经过某个点的所有线L’∈L。考虑L为直线的极坐标表示法,则霍夫空间中根据某个点x所画的线,代表的是经过该点的所有直线的极坐标表示法的参数。
- 为什么直线要用极坐标方程,而不用kx+b?一方面是因为无法表示垂直与坐标轴的直线,另外由于k值的大小可以很大,则霍夫空间变得很大,而霍夫变换的时间复杂度取决于霍夫空间的大小。
- 直线检测的时间复杂度分析
假设将霍夫空间的2pi分为m份,原图的size为(n,n),共有N个点。
霍夫变换计算:将笛卡尔坐标的点换成霍夫空间的线的离散值需要O(mN);
排序霍夫空间所有点O(mn),后面的n是rho的取值范围,根据直线的极坐标表示(rho=xcos(theta)+ysin(theta))可知,rho的最大长度不会超过原图的对角线。