cv2.kalman 无法正常工作

Posted

技术标签:

【中文标题】cv2.kalman 无法正常工作【英文标题】:cv2.kalman does not work properly 【发布时间】:2017-10-28 01:51:53 【问题描述】:

我想使用 Opencv Kalman 滤波器实现平滑一些噪声点。所以我尝试为它编写一个简单的测试代码。

假设我有一个观察(一点)。我收到新的观察的每一帧,我称卡尔曼预测和卡尔曼正确。 opencv卡尔曼滤波器正确后的状态是“紧跟其后”。但是代码不能正常工作,它没有输出,看起来像是一个无限循环。所以谁能给点提示,谢谢。 以下是我的代码:

import cv2
import numpy as np

frame = np.zeros((800,800),np.uint8)
last_measure = current_measure = np.array((2,1),np.float32)
last_predict = current_predict = np.zeros((2,1),np.float32)
predict = []
measure = []
X = np.array([[1,0,0,0],[0,1,0,0]],np.float32)

def move(x,y):
  global frame, last_measure, current_measure, measure, 
  current_predict, last_predict
  last_predict = current_predict
  last_measure = current_measure
  predict.append([int(last_predict[0]),int(last_predict[1])])
  measure.append([int(last_measure[0]),int(last_measure[1])])
  current_measure = np.array([[np.float32(x)],[np.float32(y)]])
  kalman.correct(current_measure)
  current_predict = kalman.predict()
  lmx,lmy = last_measure[0],last_measure[1] 
  cmx,cmy = current_measure[0],current_measure[1] 
  cpx,cpy = current_predict[0],last_predict[1] 
  lpx,lpy = last_predict[0],last_predict[1]
  cv2.line(frame, (lmx,lmy), (cmx,cmy), (0,100,0))
  cv2.line(frame, (lpx,lpy), (cpx,cpy), (0,0,200))
  print(current_predict)

cv2.namedWindow("kalman")
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

for item in bound:
    move(item[0],item[1])
    while True:
        cv2.imshow("frame",frame)

【问题讨论】:

【参考方案1】:

您是否缺少move() in

while True:
    cv2.imshow("frame",frame)

【讨论】:

以上是关于cv2.kalman 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

mongoose 中的 UpdateMany 无法正常工作,但直接在 mongodb 中可以正常工作

简单的 C# 应用程序无法正常工作,在 Visual Studio 中运行时工作正常

AVPlayer 无法正常工作 - Swift

Bootstrap - 按钮切换无法正常工作

xmppframework 的 didReceive 存在无法正常工作

iOS 13 UITextView 将 UITextView 转换为图像无法正常工作。在 iOS 12 以下正常工作