Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ opencv fitLine做什么?_C++_Opencv_Least Squares - Fatal编程技术网

C++ opencv fitLine做什么?

C++ opencv fitLine做什么?,c++,opencv,least-squares,C++,Opencv,Least Squares,根据答案,cv::fitLine将distType设置为cv\u DIST\u L2是一种标准的最小二乘法。然而,从这个角度来看,它似乎使用了一个不同的公式: origin = (mean(x), mean(y)); // this is as in standard ls angle = 0.5 * atan2( 2 * cov(x, y), (var(x) - var(y))); 谁能给我解释一下最后一个公式吗 编辑:这实际上是一个总体最小二乘法。阅读更多信息。你试过阅读吗?当然,也有人

根据答案,
cv::fitLine
distType
设置为
cv\u DIST\u L2
是一种标准的最小二乘法。然而,从这个角度来看,它似乎使用了一个不同的公式:

origin = (mean(x), mean(y)); // this is as in standard ls

angle = 0.5 * atan2( 2 * cov(x, y), (var(x) - var(y)));
谁能给我解释一下最后一个公式吗


编辑:这实际上是一个总体最小二乘法。阅读更多信息。

你试过阅读吗?当然,也有人说第一种方法使用简单最小二乘法。公式应该是什么样的?也许它是用协方差的一些性质来变换的?atan2用于获得由x和y分量形成的角度。当使用线表示法y=a+b*x时,常用公式(参见这里的示例:mathworld.wolfram.com/LeastSquaresFitting.html)是b=cov(x,y)/var(x),因此在原点方向表示法中它变成了角度=atan2(cov(x,y),var(x))。我看不出这是第一个公式的转换,但如果是这样的话,我很乐意看到一个解释。