Есть ли пример реализации cv2.KalmanFilter?

Я пытаюсь создать простой трекер veeery для 2D-объектов, используя оболочку python для OpenCV (cv2).

Я заметил только 3 функции:

  • KalmanFilter (конструктор)
  • .predict ()
  • .correct (измерение)

Моя идея – создать код, чтобы проверить, работает ли kalman следующим образом:

kf = cv2.KalmanFilter(...) # set initial position cv2.predict() corrected_position = cv2.correct([measurement_x, measurement_y]) 

Я нашел несколько примеров, используя cv-оболочку, но не cv2 …

Заранее спасибо!

One Solution collect form web for “Есть ли пример реализации cv2.KalmanFilter?”

если вы используете opencv2.4, то это плохая новость: KalmanFilter непригоден, поскольку вы не можете установить матрицу перехода (или любую другую).

для opencv3.0 он работает правильно, вот так:

 import cv2, numpy as np meas=[] pred=[] frame = np.zeros((400,400,3), np.uint8) # drawing canvas mp = np.array((2,1), np.float32) # measurement tp = np.zeros((2,1), np.float32) # tracked / prediction def onmouse(k,x,y,s,p): global mp,meas mp = np.array([[np.float32(x)],[np.float32(y)]]) meas.append((x,y)) def paint(): global frame,meas,pred for i in range(len(meas)-1): cv2.line(frame,meas[i],meas[i+1],(0,100,0)) for i in range(len(pred)-1): cv2.line(frame,pred[i],pred[i+1],(0,0,200)) def reset(): global meas,pred,frame meas=[] pred=[] frame = np.zeros((400,400,3), np.uint8) cv2.namedWindow("kalman") cv2.setMouseCallback("kalman",onmouse); kalman = cv2.KalmanFilter(4,2) kalman.measurementMatrix = np.array([[1,0,0,0],[0,1,0,0]],np.float32) kalman.transitionMatrix = np.array([[1,0,1,0],[0,1,0,1],[0,0,1,0],[0,0,0,1]],np.float32) kalman.processNoiseCov = np.array([[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],np.float32) * 0.03 #kalman.measurementNoiseCov = np.array([[1,0],[0,1]],np.float32) * 0.00003 while True: kalman.correct(mp) tp = kalman.predict() pred.append((int(tp[0]),int(tp[1]))) paint() cv2.imshow("kalman",frame) k = cv2.waitKey(30) &0xFF if k == 27: break if k == 32: reset() 
  • Лучший способ установить OpenCV на Windows с Enthought Canopy Python?
  • Обнаружение рисованных фигур из блок-схемы OpenCV
  • Как импортировать cv2 в проект python «Visual Studio 2015»?
  • Конфликтующие типы Numpy и OpenCV2 при вызове функций OpenCV
  • контуры заполнения питона opencv, которые не полностью закрыты
  • Как удалить фон из этого изображения?
  • Как найти желтую координату окна изображения?
  • Расширенное обнаружение квадратов (с подключенной областью)
  • opencv python osx
  • Разделить текстовые строки в отсканированном документе
  • Есть ли возможная причина иметь некоторые трудности с файлами jpg в opencv при использовании функции imread для их чтения?
  • Python - лучший язык программирования в мире.