资源简介
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;
评论
共有 条评论