Я работаю с OpenCV KalmanFilter, и я новичок в этой проблеме.До сих пор я знаю, что с помощью KalmanMesurementMatrix я могу указать, какие параметры я могу измерить, а какие нет.
У меня сейчас проблема в том, что я могу измерить координаты x и y и dx и dy, что означаетразница, что-л.как скорость между кадрами, но иногда у меня нет информации о координатах x, y, и у меня есть только информация о dx и dy (это происходит в большинстве случаев).
моя матрица перехода :
np.array([
[1, 0, 1, 0],
[0, 1, 0, 1],
[0, 0, 1, 0],
[0, 0, 0, 1]
], np.float32)
и матрица измерений :
np.array([
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]
], np.float32)
1) Есть ли возможность просто обновить "выбранные" параметры или нет?Я пытался что-токак это:
[np.float32(coordinates.x)], # x-coord
[np.float32(coordinates.y)], # y-coord
[], # dx
[], # dy
но это не работает
2) Может быть, я думаю об этом неправильно, я должен удалить параметр координат x, y и придерживаться простоdx, dy и перед обновлением из измерения координат преобразовать его только в dx и dy?
Спасибо, :)
РЕДАКТИРОВАТЬ:
После некоторой фиктивной попытки я понял, что когда я изменяю матрицу измерений на:
np.array([
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]
], np.float32)
, она игнорирует значения, которые я даю измерению dx, dy.Но я не знаю, это законно делать это во время выполнения.И я не знаю, правильно ли построена моя матрица переходов.
Любая помощь приветствуется.
это моя матрица переходов:
np.array([
[1, 0, 1, 0],
[0, 1, 0, 1],
[0, 0, 1, 0],
[0, 0, 0, 1]
], np.float32)