【发布时间】:2014-02-13 13:07:51
【问题描述】:
我正在寻求帮助,在 Matlab 中对一组点进行(简单?)最小二乘线拟合。
我有一个包含一组点的图像,我试图将它们拟合成一条线,从而最小化每个点到线的距离(最小二乘拟合)。似乎与openCV/fitline 一起工作得很好,但我们正在两个平台上进行研究——另一个是Matlab,而Matlab/polyfit 与opencv/fitline 做的事情不同。
根据Fitting a line - MatLab disagrees with OpenCV,似乎Polyfit 最小化了到直线的 Y 距离,而不是最小二乘(垂直)距离。
【问题讨论】:
-
最小二乘回归根据定义最小化 y 距离。如果您想最小化垂直距离,请尝试 PCA。但是你到底想用这条线做什么?您可能会发现 Matlab 解决方案实际上就是您所追求的。
-
这可能会有所帮助:cerebralmastication.com/2010/09/…
-
@Dan,准确地说是非线性 PCA。 :)
-
@divanov 我不太确定——你能链接到参考吗?我认为只是普通的 PCA 将完全按照 OP 描述的 OpenCV 来做......
-
@Dan,polyfit 用多项式曲线拟合数据,因此必须使用 PCA 获得相同的多项式 PCA。
标签: matlab linear-regression pca