Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2009-04-18, 18:09   #1
djdj
初级会员
 
注册日期: 2009-04-18
年龄: 36
帖子: 2
声望力: 0
djdj 正向着好的方向发展
默认 关于椭圆灰度检测的程序,帮忙看一下,我看不太懂

format long
P=imread('picture.bmp');
lefttop=[100 240
142 244
170 258
450 545
471 543];
rightbutton=[200 368
375 466
591 685
200 330
537 624];

for circle=1:5
circle
if(circle~=1)
clear u;
clear v;
end
k=1;
for i=lefttop(circle,1):lefttop(circle,2);
flag=0;
for j=rightbutton(circle,1):rightbutton(circle,2);
if flag==0 & P(i,j)<10
u(k)=i;
v(k)=j;
k=k+1;
flag=1;
elseif flag==1 & P(i,j)<10 & P(i,j+1)>200
u(k)=i;
v(k)=j;
k=k+1;
end
end
end
for j=rightbutton(circle,1):rightbutton(circle,2)
flag=0;
for i=lefttop(circle,1):lefttop(circle,2)
if flag==0 & P(i,j)<10
f1=0;
for temp=1:k-1
if u(temp)==i & v(temp)==j
f1=1;
end
end
if f1==0
u(k)=i;
v(k)=j;
k=k+1;
flag=1;
end
elseif flag==1 & P(i,j)<10 & P(i+1,j)>200
f1=0;
for temp=1:k-1
if u(temp)==i & v(temp)==j
f1=1;
end
end
if f1==0
u(k)=i;
v(k)=j;
k=k+1;
flag=1;
end
end
end
end
axis equal;
axis([1 768 1 1024]);

plot(u,v,'.');grid on ;hold on;

x=ones(k-1,5);
y=ones(k-1,1);

for i=1:k-1
x(i,=[1 v(i) u(i) u(i)*v(i) v(i)*v(i) ];
y(i)=-u(i)*u(i);
end

[b,bint,r,rint,stats]=regress(y,x);
b
bint
stats
A=[2 b(4);
b(4) 2*b(5)];
B=[-b(3);-b(2)];
X=A\B
xo=(X(2)-512)/3.78
yo=(384-X(1))/3.78
xlswrite(strcat('d:/',num2str(circle),'.xls'),[u;v]');
end
djdj 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:05


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.