[英]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()
是唯一未内置的函数或变量。 不存在transitionMatrix
, processNoiseCov
或measurementNoiseCov
。
有谁知道这里可能是什么问题?
因此,看来您需要做的是获取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中的类型,这很奇怪,但是我无法使其正常工作!
资源:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.