• 大小: 1.4MB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2023-12-25
  • 语言: 其他
  • 标签: 图像处理  

资源简介

最小二乘法拟合圆心,基于Hough变换的圆心检测,基于harris亚像素棋盘格检测,对三种方法角点检测进度进行对比分析。

资源截图

代码片段和文件信息

function Center=CenterDetect(In_cn_rrange)
%range表示霍夫检测圆的半径范围
%n_c表示水平方向上,圆的个数
%n_r表示竖直方向上,圆的个数

figure(1)
imshow(I)
[BWxiyi] = roipoly;
%构建直线方程,用于后面圆点排序(重要)
flag=1; %表示斜率存在
if xi(1)~=xi(4)
    lk=(yi(4)-yi(1))/(xi(4)-xi(1));  %斜率
    lb=yi(1)-lk*xi(1);
else
    LX=xi(1);
    flag=0;
end
BW=double(BW);
NewI=double(I).*BW;
NewI=uint8(NewI);
level = graythresh(NewI);
A=im2bw(NewIlevel);

%centers为圆心坐标,radii为半径
[centersradii] = imfindcircles(~Arange);

%对圆心进行排序
figure(2)
imshow(I)
hold on
pp=centers;

%计算中心点到左端直线的x方向的(由原点的分布特性,可以不用求点到直线的距离,从而提高算法效率)
if flag
    xe=(pp(:2)-lb)/lk;  %中间变量
    pp(:3)=pp(:1)-xe;
else
    pp(:3)=pp(:1)-LX;
end

Sort_R=sortrows(pp3);
psort_row=Sort_R(:1:2);

%再按照y的大小,对每一列的圆心进行排序
Center=[];
for k=1:n_c
    exm=psort_row((k-1)*n_r+1:k*n_r:);
    exm=sortrows(exm2);
    Center=[Center;exm];
end

for k=1:length(Center(:1))
    plot(Center(k1)Center(k2)‘*‘);
    %     text(centers(i1)+5centers(i2)+5num2str(i));
    text(Center(k1)+5Center(k2)+5num2str(k)‘FontSize‘10‘Color‘‘red‘‘FontWeight‘‘Bold‘);
end
viscircles(centers radii‘EdgeColor‘‘b‘);
Center=Center‘;  %转置
end

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

     文件    1921078  2014-11-23 19:09  三种圆心检测精度对比\001.bmp

     文件    1921078  2014-11-23 19:10  三种圆心检测精度对比\007.bmp

     文件       1351  2017-07-05 19:21  三种圆心检测精度对比\CenterDetect.m

     文件       1756  2018-11-28 20:42  三种圆心检测精度对比\CenterDetectNew.m

     文件       1338  2017-07-06 22:43  三种圆心检测精度对比\circle_fitting.m

     文件       4236  2019-02-26 10:25  三种圆心检测精度对比\Compare_Three_CenterMethod.m

     文件       5303  2019-01-13 23:22  三种圆心检测精度对比\两种方法检测的圆心比较.mat

     目录          0  2019-02-26 10:28  三种圆心检测精度对比

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

              3856140                    8


评论

共有 条评论