%一般椭圆方程:A*x^2+2Bxy+Cy^2+2Dx+2Ey+1=0;或者:A*(x-Cx)^2+2B(x-Cx)(y-Cy)+C(y-Cy)^2+C(y-Cy)^2+1=0;
%圆心在原点的椭圆方程:A*x^2+2Bxy+Cy^2+1=0;
clear all;clc;
global centerx centery
%I=imread('b3.jpg');
%I=im2bw(I,.2);
%I=edge(I,'sobel');
I=imread('P.bmp');
I=im2bw(I);
[sy,sx]=size(I); sz=sy*sx;
[y,x]=find(I==0); %找出像素点为0的坐标
totalpix=length(x); %找出数组x的长度。
center=zeros(sy,sx);%初始化一个二维矩阵sy*sx,作为累加器
%求椭圆的圆心。
i=1;
for cnt=i:totalpix-1
%for centR=1:50
cnt1=(i+1):totalpix;
b=round((y(cnt)+y(cnt1))/2);
a=round((x(cnt)+x(cnt1))/2);
ind =sub2ind([sy,sx],b,a);
%center(sz*(centR-1)+ind)=ce