繁体   English   中英

OpenCV的卡尔曼滤波器缺少矩阵

[英]OpenCV's Kalman Filter lacks Matricies

我已经安装了OpenCv 2.4.8,并且大部分情况下都在Python 2.7上工作(我在Ubuntu上)。

OpenCv似乎一切正常。 但是,以下代码

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

给我这个错误:

AttributeError:“ cv2.KalmanFilter”对象没有属性“ measurementMatrix”

的确, dir(kalman)表明,只有correct()predict()是唯一未内置的函数或变量。 不存在transitionMatrixprocessNoiseCovmeasurementNoiseCov

有谁知道这里可能是什么问题?

因此,看来您需要做的是获取pyKalman而不是使用opencv。 从我的快速搜索中,您提到的是opencv提供的所有信息:

'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',

您也可以实现自己的定义。

务必阅读以下内容: http : //filterpy.readthedocs.io/en/latest/kalman/KalmanFilter.html https://arxiv.org/ftp/arxiv/papers/1204/1204.0375.pdf 是否有cv2的任何示例。 KalmanFilter实现?

抱歉,您的答案无法全部解决。

- 编辑 -

根据文档,您可以使用:

cv2.KalmanFilter.correct(测量)→检索

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)

我注意到的第一个问题是在定义Kalman过滤器的第一行之后,这样的过滤器未在我的变量浏览器中显示。 numpy数组确实显示了,但这让我对Kalman感到疑惑。

此外,当我使用Y = Kalman.correct(X)时,尺寸存在问题,但至少距离了一步。 我也发现文档说我可以定义一个CV_32F或CV_64F作为KalmanFilter中的类型,这很奇怪,但是我无法使其正常工作!

资源:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM