rho = x*cos(theta) + y*sin(theta)
rho 为原点到线的距离
theta 为线的法线和 x 轴的夹角DIPUM 中 theta 定义不同,为线和 x 轴的夹角
做法:
for each foreground point
for each theta \in [-90,90)
calculate rho
increment the cell (rho, theta)
如何用 Hough 变换求得方向?
1. 若图中有很明显的一条线
houghpeaks 求得最大的 peak
2 图中有很多平行线,要求得平行线的方向,但是max peak却不一定对应平行线。有时候 max peak 对应的线是断断续续的,你可能没注意到
对于这种情况,比较健壮的办法是求得多个 peaks,把它们的 theta 求直方图,再平滑滤波,最后求直方图的 peak
[pr pc] = houghpeaks(H,20); pch = hist(pc,1:180); pch = conv(pch,[0.25 0.5 0.25]); [tmp idx]=max(pch); theta = -90+idx-1;
0 comments:
Post a Comment