• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-06
  • 语言: Matlab
  • 标签: 椭圆检测  

资源简介

matlab实现图像边缘提取,hough变换进行椭圆检测,有注释

资源截图

代码片段和文件信息

f1=imread(‘G:\bishe\lll.JPG‘);   %读入图像返回二维矩阵
figure;
imshow(f1);
fedge=edge (f1‘canny‘[00.7]0.07);  %提取边缘
figure;
imshow(fedge);
[row col]=size(fedge);      % 获取矩阵的行列数  
% minofa=5;        %
% maxofa=round(row/2)-20;     %四舍五入行/2
minofa=15;
maxofa=30;
minofy0=round(col/2)-40;  %四舍五入
maxofy0=round(col/2)-25;    %------
minofb=15;
maxofb=25;
%minofb=round(col/2)-60;       %------
%maxofb=round(col/2)-20;          %---------
maxofx=round(row/2)+20;           %--------
scalor=1;                 %令scalor=4
H=zeros(floor((maxofa-minofa)/scalor)+1floor((maxofa-minofa)/scalor)+1floor((maxofy0-minofy0)/scalor)+1floor((maxofb-minofb)/scalor)+1);           %取小于某数的最大整数 
for x=1:maxofx
   for y=1:col
     temp=fedge(xy);                          %从第一行第一列开始
       if temp==255                            %如果这一点为?,则
         for a=minofa:scalor:maxofa
           for x0=a:scalor:maxofa
             for b=minofb:scalor:maxofb
               for y0=minofy0:scalor:maxofy0
                  temp=((y-y0)/b)^2+((x-x0)/a)^2;
                    if abs(temp-1)<=0.01                 % 判断在误差范围内是否为椭圆;如果是
                         xtemp=floor((x0-minofa)/scalor)+1;      
      

评论

共有 条评论