与霍夫变换有关的工具箱函数
图像处理工具箱提供了三个与霍夫变换有关的函数。函数hough实现了前面讨论的概念,函数houghpeaks寻找霍夫变换的峰值(累加单元的高计数),函数houghlines以来自其他两个函数的结果为基础在原始图像中提取线段。
1. 函数hough
函数hough支持任意的默认语法:
[H, theta, rho] = hough(f)
还支持完整的语法形式:
[H, theta, rho] = hough(f, 'ThetaRes', val1, 'RhoRes', val2)
其中,H是霍夫变换矩阵,theta(以度计)和rho是ρ和θ值向量,在这些值上产生霍夫变换。输入f是二值图像,val1是0到90的标量,指定了沿θ轴霍夫变换的间距(默认是1),val2是0
例10.5 霍夫变换的说明
在这个例子中,我们用简单的合成图像来说明hough函数的机理:
>> f = zeros(101, 101);
>> f(1, 1) = 1; f(101, 1) = 1; f(1, 101) = 1;
>> f(101, 101) = 1; f(51, 51) = 1;
图10-10(a)显示了我们的测试图像,下面使用默认值计算并显示霍夫变换的结果:
>> H = hough(f)
>> Imshow(H,[])
图10-10(b)显示了结果,以熟悉的方法使用imshow函数来显示。在带有标度轴的较大图中显现霍夫变换常常更有用。
在接下来的代码片段中,我们调用带有三个参数的hough函数。然后把向量theta和rho作为附加输入参量传递给imshow,从而控制水平轴和垂直轴的标度。我们还要把'InitialMagnification'选项传递给带有值'fit'的imshow函数,因此,整个图像将被强迫在图形窗口中进行装配。axis函数被用来打开轴标记,并使其显示填充图的矩形框。最后,xlabel和ylabel函数(见2.3.1节)用希腊字母LaTeX字体符号在轴上标值:
>> [H, t