posts - 195, comments - 34, trackbacks - 0, articles - 1
关于 HOUGH变换的MATLAB的程序几个问题
引用地址:http://www.xici.net/b582330/d37390708.htm [ 返回《南航天下之研究..》 
 
风语者4228639 发表于:2006-5-9 21:39:59

我现在在做毕设,是关于小球位置检测的。先用边缘检测找到边缘,用HOUGH变换的方法检验,通过MATLAB编程实现。
我先在网上找到一个检测直线的HOUGH变换的程序。
% Hough 变换
i=imread('b.jpg');
i_long =size(i,1);
i_width=size(i,2);
i_edge=edge(i,'robert');
i_hough=zeros(300,300);   %创造一个300*300的矩阵
theta_step=3.14*2/299;
theta=0:theta_step:2*3.14;

x_max=1;   
x_min=1;
y_max=1;
y_min=1;

for x=1:i_long
   for y=1:i_width
     if i_edge(x,y)==1
     x_max=max(x_max,x);  
     x_min=min(x_min,x);
     y_max=max(y_max,y);
     y_min=min(y_min,y);
     end
   end
end

p_min=sqrt(x_min^2+y_min^2);        %开平方
p_max=sqrt(x_max^2+y_max^2);
p_step=2*p_max/299;
p=-p_max:p_step:p_max;

for x=1:i_long
    for y=1:i_width
        if i_edge(x,y)==1     %对于边缘点进行累加
           rou=x.*cos(theta)+y.*sin(theta);
            w=fix(rou./p_step)+151;
            l=fix(1+theta./theta_step);
            n=300.*(l-1)+w;
            i_hough(n)=i_hough(n)+1;
        end
    end
end

m=max(max(i_hough));
i_hough=(i_hough./m);
imshow(i_hough)

请问一下,HOUGH变换后必须要重新确定边缘点的位置,请问一下坐标系如何确定,是在程序的哪个部分。
谢谢有了解的请给个解答。谢谢


 

每个女孩都曾是无泪的天使,当遇到自己喜欢的男孩时
便会流泪——于是坠落凡间,变为女孩。
所以男孩一定不要辜负女孩,因为女孩为你放弃了整个天堂!

虽然我不是把你从天使变成女孩的那个人,
但希望我是把你从女孩变成女人的那个人
   



只有注册用户登录后才能发表评论。


网站导航: