2016-06-07 18 views
0

Ich habe OpenCv 2.4.8 installiert und zum größten Teil arbeiten auf Python 2.7 (ich bin auf Ubuntu).OpenCV Kalman Filter fehlt Matrizen

Alles scheint mit OpenCv gut zu funktionieren. Doch der folgende Code

import numpy as np 
kalman = cv2.KalmanFilter(4,2) 
kalman.measurementMatrix = np.array([[1,0,0,0],[0,1,0,0]],np.float32) 

gibt mir diese Fehlermeldung:

AttributeError: 'cv2.KalmanFilter' object has no attribute 'measurementMatrix'

Tatsächlich zeigt dir(kalman), dass nur correct() und predict() die einzigen Funktionen oder Variablen sind, die nicht eingebaut sind. No transitionMatrix, processNoiseCov oder measurementNoiseCov sind vorhanden.

Weiß jemand, was das Problem hier sein könnte?

+1

Sie werden OpenCV benötigen 3+ Kalman-Filter auf OpenCV Python verwenden :( – Berriel

Antwort

0

Also, was Sie tun müssen, ist, pyKalman zu bekommen, anstatt die opencv eine zu verwenden. Aus meiner schnellen Suche, alles, was von opencv verfügbar ist, was Sie erwähnen:

'KERNEL_SYMMETRICAL', 'KMEANS_PP_CENTERS', 'KMEANS_RANDOM_CENTERS', 'KMEANS_USE_INITIAL_LABELS', 'KNearest', 'KalmanFilter', 'KeyPoint', 'LEV_MARQ_CALC_J', 'LEV_MARQ_CHECK_ERR', 'LEV_MARQ_DONE', 'LEV_MARQ_STARTED', 'LMEDS', 'LUT', 'Laplacian', 'MAGIC_MASK', 

Sie könnten auch nur Ihre eigene Defintion implementieren.

Bitte lesen Sie diese: http://filterpy.readthedocs.io/en/latest/kalman/KalmanFilter.html https://arxiv.org/ftp/arxiv/papers/1204/1204.0375.pdf Is there any example of cv2.KalmanFilter implementation?

Leider habe ich keine Antwort alle aussortiert werden könnten.

--EDIT--

Gemäß der Dokumentation können Sie verwenden:

cv2.KalmanFilter.correct (Messung) → Retval

import numpy as np 
import cv2 
import cv2.cv as cv 

kalman = cv2.KalmanFilter(4,2) 
X = np.array([[1,0,0,0],[0,1,0,0]],np.float32) 
Y=kalman.correct(X) 

Das erste Problem, das ich bemerken ist, dass nach der ersten Zeile, in der der Kalman-Filter definiert ist, der Filter als solcher in meinem Variablen-Explorer nicht angezeigt wird. Das numplige Array zeigt zwar, aber ich frage mich nach dem Kalman.

Weiter, wenn ich Y = Kalman.correct (X) verwenden, gibt es ein Problem mit den Dimensionen, aber zumindest ist es einen Schritt näher. Ich finde es auch seltsam, dass die Dokumentation sagt, dass ich einen CV_32F oder CV_64F definieren kann, wie im KalmanFilter, aber ich kann es einfach nicht zum Laufen bringen !!!

Quelle:

http://docs.opencv.org/2.4/modules/video/doc/motion_analysis_and_object_tracking.html?highlight=kalman%20python#cv.CreateKalman

+0

Die Variablen ich schon erwähnt, sind in der Dokumentation Außerdem kann ich sie auf der OpenCV finde ich installiert. auf meinem Python 3. – Argon

+0

In Ordnung, also habe ich ein bisschen mehr hinein gegraben! - siehe meine Bearbeitung – Joseph

+0

Ich verstehe nicht.Ich möchte nicht mehr Pakete installieren, vor allem, wenn sie überflüssig gemacht werden können würde lieber lösen, warum ich nicht die Variablen habe, die ich sollte. " – Argon