У меня есть cv::Mat
вроде этого:Расчет ковариации в OpenCV
500.0 350.2
500.5 355.8
498.7 352.0
............
И мне нужно вычислить ковариацию. Результатом будет что-то вроде:
0.8633 1.2167
1.2167 8.1733
Конечно, функция мне нужно calcCovarMatrix .... НО если я выполняю этот код:
cv::Mat a = (cv::Mat_<double>(3, 2) << 500.0, 350.2, 500.5, 355.8, 498.7, 352.0);
cv::Mat mu, new_covs;
cv::calcCovarMatrix(a, new_covs, mu, CV_COVAR_NORMAL | CV_COVAR_COLS);
Результатом является непонятная матрица 3x3 ...
new_covs=
[11220.02, 10838.03, 10987.83;
10838.03, 10469.045, 10613.745;
10987.83, 10613.745, 10760.445]
Надеюсь, вы можете помочь мне с моей проблемой!
Я предполагаю [calcCovarMatrix] (http://docs.opencv.org/modules/core/doc/operations_on_arrays.html#calccovarmatrix) будет полезно. – WhozCraig
Я редактировал вопрос с дополнительной информацией. – Ricardo
Ваши образцы являются ** строками ** ввода, правильно? Итак, почему вы говорите функции, что это столбцы? –