个人感觉漏了一步。一般的边缘检测得到的边缘会是断断续续的,甚至有些歪歪扭扭的吧?应该再通过区域融合或者生长的方法把它们连成一个完整的椭圆,并且滤波去除一些杂点、干扰。最后再获得中心。纯属个人意见:P

解决方案 »

  1.   

    在边缘上随机选取三个点,要求有一定距离并且不共线,在每个点处拟合切线。选取其中两个点,设他们切线的交点为A,两点连线的中点为B,则直线AB过椭圆中心。利用另外一点再求出这样一条直线,两条直线的交点就是椭圆的中心。
    如果是圆的话就更简单了,直接用Hough变换检测,就可以得到圆心。