|
完善了一下,这样从图中可以看出,参数集z,a,b,alpha的第n个参数与第n个椭圆对应。
clc
clear
% By Friendchj
I=imread('shiyan.bmp');
I0=im2bw(I,graythresh(I)); % 转化为二值图像
% imshow(I0,[])
[B,L]=bwboundaries(I0); % 寻找区域边界
z=[];
a=[];
b=[];
alpha=[];
iptsetpref('ImshowAxesVisible','on')
imshow(I0,[])
hold on
for i=2:length(B)
x=B{i}; % 区域1为背景,从2开始
x0=x;
x(:,1)=x0(:,2); % 调整横纵坐标,实验得出
x(:,2)=x0(:,1);
x=x.';
[z0,a0,b0,alpha0]=fitellipse(x, 'linear'); % 椭圆拟合
plotellipse(z0, a0, b0, alpha0,'r.')
text(z0(1),z0(2),num2str(i-1),'color',[1 1 0])
z=[z,z0]; % 保存参数,中心坐标
a=[a,a0]; % 保存参数,根据a,b大小决定长短轴
b=[b,b0];
alpha=[alpha,alpha0]; % 旋转角度
end
[ 本帖最后由 friendchj 于 2008-11-26 20:29 编辑 ] |
评分
-
1
查看全部评分
-
|