python椭圆拟合_将椭圆拟合到python中的点

本文探讨了使用Python进行椭圆拟合时遇到的问题,当拟合一组地理空间数据并进行投影后,得到的椭圆长轴与短轴比例异常,导致偏心率计算困难。作者分享了拟合椭圆的代码,包括fitEllipse、ellipse_center、ellipse_angle_of_rotation和ellipse_axis_length等函数,并寻求对异常结果的解释和可能的解决方法。
摘要由CSDN通过智能技术生成

实际上有一个帖子与此非常相似,但提出的问题与5年前不同。在

我有一组不是椭圆的点,我想用最小二乘法拟合椭圆。这些是我发现的用于计算的函数。我仔细检查了一下,但没有发现任何错误。在import numpy as np

import numpy.linalg as linalg

import matplotlib.pyplot as plt

def fitEllipse(x,y):

x = x[:,np.newaxis]

y = y[:,np.newaxis]

D = np.hstack((x*x, x*y, y*y, x, y, np.ones_like(x)))

S = np.dot(D.T,D)

C = np.zeros([6,6])

C[0,2] = C[2,0] = 2; C[1,1] = -1

E, V = linalg.eig(np.dot(linalg.inv(S), C))

#print E

n = np.argmax(np.abs(E))

a = V[:,n]

return a

def ellipse_center(a):

b,c,d,f,g,a = a[1]/2, a[2], a[3]/2, a[4]/2, a[5], a[0]

num = b*b-a*c

x0=(c*d-b*f)/num

y0=(a*f-b*d)/num

return np.array([x0,y0])

def ellipse_angle_of_rotation( a ):

b,c,d,f,g,a = a[1]/2, a[2], a[3]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值