资源简介

利用Matlab编写的基于hough变换的椭圆检测程序,已经运行过的,附图

资源截图

代码片段和文件信息

clcclear all
I = imread(‘1.jpg‘);
[mnl] = size(I);
if l>1
    I = rgb2gray(I);
end
BW = edge(I‘sobel‘);
step_r = 1;
step_angle = 0.1;
minr = 20;
maxr = 30;
thresh = 0.3;


[mn] = size(BW);
size_r = round((maxr-minr)/step_r)+1;
size_angle = round(2*pi/step_angle);
 
hough_space = zeros(mnsize_r);
 
[rowscols] = find(BW);
ecount = size(rows);
 
% Hough变换
% 将图像空间(xy)对应到参数空间(abr)
% a = x-r*cos(angle)
% b = y-r*sin(angle)
for i=1:ecount
    for r=1:size_r
        for k=1:size_angle
            a = round(rows(i)-(minr+(r-1)*step_r)*cos(k*step_angle));
            b = round(cols(i)-(minr+(r-1)*step_r)*sin(k*step_angle));
            if(a>0&&a<=m&&b>0&&b<=n)
                hough_space(abr) = hough_space(abr)+1;
            end
        end
    end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1824  2010-06-09 12:15  hough.m

     文件       1983  2010-06-09 12:07  1.jpg

----------- ---------  ---------- -----  ----

                 3807                    2


评论

共有 条评论