图像曲线拟合的多项式最小二乘法

我试图将曲线拟合到图像中的多个像素,以便我可以对其形状进行进一步处理。 有没有人知道如何在C / ++中实现最小二乘法,最好使用以下参数:x数组,ay数组和答案数组(答案数组的长度应该告诉需要计算多少系数)?

如果这不是自己实现的一些练习,我建议你使用像GNU gsl这样的现成库。 看看名称以gsl_multifit_开头的函数,请参见此处的第二个示例。

如果您尝试拟合有序点(x,y),就像在图形中一样,您可以使用线性最小二乘法但总是使用这些方法,您需要指定用于逼近的多项式的次数(答案数组的长度)想必)。 如果您的点是平面中可以形成闭环或某个结构轮廓的一般有序点(例如,尝试拟合描述椭圆或圆形或其他封闭或更复杂几何的点)那么您将要去需要更复杂的东西。 您仍然可以使用最小二乘,但您需要使用参数类型曲线,如样条曲线。 看一下这个链接上的pdf,它可以提供你需要的东西(或者至少说明我的意思): http : //www.google.com/url ?sa = t& rct = j&q =& esrc = s&source =幅和CD = 1&VED = 0CE0QFjAA&URL = HTTP%3A%2F%2Ffolk.uio.no%2Fin329%2Fnchap6.pdf&EI = Yp8CUNvHC8Kg0QX6r_mEBw&USG = AFQjCNHBUZ5t2Y7C8eONYSosRydLs4Zu4A

如果没有看到您正在尝试拟合的图像,很难说 – 很可能您的数据可以使用线性最小二乘多项式以非参数方式拟合 – 如果是这样,您只需要一个线性代数库您可以自己编写近似值: http : //en.wikipedia.org/wiki/Ordinary_least_squares

即便如此,所有forms的近似都要求您在适合之前决定您的表格(function基础和程度等)。 例如,如果您想确定是否需要适合您的数据的第4,第5,第6或第7度多项式,您需要适合每个数据并评估适合您自己的数据。 没有通用的方法(至少我不知道)会告诉您需要适合数据的近似程度。