Hough 变换输出参数[H,theta,rho]的具体含义
F=imread('D:\Desktop\90.png');
f=rgb2gray(F);
[H,theta,rho] = hough(f)
输出[H,theta,rho]。
其中Theta 取值-90至89,为1×180的数组。
rho取值根据图片f的大小确定,如图片为400×400像素,则rho取值-(400^2+400^2)^0.5至(400^2+400^2)^0.5,即图片的对角线长度,为1×1131的数组。
Theta,rho仅为hough变换的坐标取值。hough变换的结果储存于输出的H矩阵中。
H矩阵为rho×theta大小的矩阵,矩阵中各元素表示原直角坐标系图片中各点hough变换结果为(rho,theta)的数量。
如下图(400×400像素)hough变换后rho为200,theta为0处的H矩阵数值为400。表示图中竖贯图片(400长度)的线上每一点的hough变换都能产生(rho,theta)为(200,0)的结果,因此H矩阵在该坐标处的数值为400。
可对hough变换的精度进行调整。
F=imread('D:\Desktop\90.png');
f=rgb2gray(F);
[H,theta,rho] = hough(f,'RhoResolution', 0.2, 'Theta', -90:0.2:89);
使用'RhoResolution',调整rho分辨率为0.2。
使用'Theta', -90:0.2:89调整分辨率,将theta分辨率调整为0.2°。
rho, theta,H的矩阵大小相应增加。
H矩阵与原图直角坐标系的关系
F=imread('D:\Desktop\90.png');
f=rgb2gray(F);
[H,theta,rho] = hough(f,'RhoResolution', 0.2, 'Theta', -90:0.2:89);
imshow(imadjust(rescale(H)),'XData',theta,'YData',rho,'InitialMagnification','fit');
title('Hough transform');
xlabel('\theta'), ylabel('\rho');
axis on, axis normal, hold on;
colormap(gca,hot);
imread导入图片后,图片左上角的点坐标为(1,1)。hough变换后rho, theta取值如下图所示。
下图(400×400像素):rho取值为正, theta取值为正,(rho,theta)为(424,45°)。
下图(400×400像素):rho取值为正, theta取值为正,(rho,theta)为(179,30°)。
下图(400×400像素):rho取值为正, theta取值为负,(rho,theta)为(141,-45°)
下图(400×400像素):rho取值为正, theta取值为正,(rho,theta)为(179,-30°)。
下图(400×400像素):rho取值为负, theta取值为负,(rho,theta)为(-141,-45°)。
下图(400×400像素):rho取值为负, theta取值为负,(rho,theta)为(-179,-60°)。
下图(400×400像素):rho取值介于正负之间, theta取值介于正负之间,(rho,theta)为(-200,-90°)、(200,90°)。可见H矩阵theta于-90°与90°附近取值较为集中,原图中应该出现横向线条。
下图(400×400像素):rho取值接近0°, theta取值为正,(rho,theta)为(200, 0°)。可见H矩阵theta于0°附近取值较为集中,原图中应该出现竖向线条。文章来源:https://www.toymoban.com/news/detail-737470.html
文章来源地址https://www.toymoban.com/news/detail-737470.html
到了这里,关于MATLAB使用hough变换函数输出[H,theta,rho]的具体含义的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!