6
cvSolve
może rozwiązać liniową metodę najmniejszych kwadratów problemem
OpenCV jest tak:ważona liniowych najmniejszych kwadratów w OpenCV
// model: y = a1*x1 + a2*x2 + a3
CvMat *y = cvCreateMat(N, 1, CV_64FC1);
CvMat *X = cvCreateMat(N, 3, CV_64FC1);
CvMat *coeff = cvCreateMat(3, 1, CV_64FC1);
// fill vector y and matrix X
for (int i=0; i<N; ++i)
{
cvmSet(y, i, 0, my_y_value(i));
cvmSet(X, i, 0, my_x1_value(i));
cvmSet(X, i, 1, my_x2_value(i));
cvmSet(X, i, 2, 1);
}
cvSolve(X, y, coeff, CV_SVD);
// now coeff contains a1, a2, a3
Jednak chciałbym zastosować różne wagi do moich punktów danych. Jak zastosować wagi?
co to jest moja_ja_wartość, moja_x1_wartość i moja_x2_wartość? – Abc
Są one przeznaczone do podania wartości macierzy (x1, x2) i lewej strony (y). Jest to najbardziej ogólna forma, możesz przepisać kod i podać wartości w jakikolwiek sposób, który najbardziej ci odpowiada. Należy również zapoznać się z dokumentami OpenCV dla cvSolve. – Hendrik