У меня есть наблюдения в векторной форме, и я хочу вычислить ковариационную матрицу и среднее из этих наблюдений в OpenCV, используя calcCovarMatrix
:
http://docs.opencv.org/modules/core/doc/operations_on_arrays.html
Мой текущий вызов функции:
calcCovarMatrix(descriptors.at(j).descriptor.t(), covar, mean, CV_COVAR_ROWS);
В то время как descriptors.at(j).descriptor.t()
является один матрица с 2 столбцами и 390 строками. Так что мои «случайные величины» — это строки этой матрицы. covar
а также mean
пустые матрицы.
Функция рассчитывает covar
правильно и перенастраивает матрицу 390×390. Но mean
это просто матрица с 1 строкой и 2 столбцами. Я не понимаю этого. Я ожидаю матрицу с 1 столбцом и 390 строками (вектор столбца).
Я использую неправильный вариант функции? Если да, как мне использовать правильный вариант в моем случае, я специально указываю на значение для nsamples
параметр. Я не знаю двух, какое значение это установить.
Задача ещё не решена.