Гауссовская кривая OpenCV

Я ищу подгонку кривой Гаусса, используя OpenCV.
Я могу иметь 1D или 2D Mat, и я хотел бы рассчитать гауссовские параметры наилучшего соответствия Гаусса по матрице.
Однако я хотел бы иметь возможность зафиксировать некоторый параметр (например, среднее значение или дисперсию по Гауссу).
Модель 1D, которую я хотел бы подогнать, выглядит следующим образом:

y = a + (b - a) * exp( -( x - c )/( 2 * d^2 ) )

В случае 2D Matмодель аналогична многовариантной гауссовской функции.

Имеет ли OpenCV некоторую реализацию, подходящую для моих нужд?
Если да, можете ли вы привести пример или несколько полезных ссылок?
Заранее спасибо.

0

Решение

Подгонка гауссовой кривой просто означает вычисление ее параметров, которые в одномерном случае являются скалярным средним и дисперсией. Mean = sum(Xi)/n, variance = sum(Xi-mean)^2/(n-1), где ^2 означает квадрат. Это становится более интересным для 2D-случая. Среднее значение по-прежнему рассчитывается таким же образом, но становится 2D-вектором. Вместо дисперсии вы вычисляете ковариационную матрицу как этот. Это матрица 2х2.

1

Другие решения

Там нет ничего, чтобы сделать это в OpenCV. Однако, если вы выводите уравнения (матрица Гессе и т. Д.), Вы можете легко реализовать некоторые Левенберг-Марквардт процедура оценки с cv::Mat тип матрицы.

-1

По вопросам рекламы [email protected]