我有一組圖像,並且想要遞歸地預測一組像素將在下一個圖像中的位置。我正在使用Python,OpenCV,並認爲卡爾曼濾波可能是前進的方向,但我正在努力實現。爲了簡單起見,下面的代碼打開併成像並提取一個顏色通道,在本例中爲紅色。使用Python進行2D運動估計,OpenCV和卡爾曼濾波
到目前爲止,我使用光流確定每個像素在X和Y圖像之間的運動。每次迭代之後,我想使用最後的N次迭代,並且通過使用每次找到的X/Y運動,計算像素的速度,並預測它將在下一幀中結束的位置。我將查看並預測的這組像素未指定,但與示例無關。它只會是(x,y)值的Numpy數組。
任何幫助將不勝感激。下面的簡化代碼片段:
import numpy as np
import cv2
from PIL import Image
imageNames = ["image1.jpg", "image2.jpg", "image3.jpg", "image4.jpg", "image5.jpg"]
for i in range(len(imageNames)):
# Load images and extract just one colour channel (e.g., red)
image1 = Image.open(imageNames[i])
image2 = Image.open(imageNames[i+1])
image1R = np.asarray(image1[:,:,0]).astype(np.uint8)
image2R = np.asarray(image2[:,:,0]).astype(np.uint8)
# Get optical flow
flow = cv2.calcOpticalFlowFarneback(image1R, image2R, 0.5, 1, 5, 15, 10, 5, 1)
change_in_x = flow[:,:,0]
change_in_y = flow[:,:,1]
# Use previous flows to obtain velocity in x and y
# For a subset of the image, predict where points will be in the next image
# Use Kalman filtering?
# Repeat recursively
你在這裏有什麼問題?如何使用卡爾曼濾波器? – baci
是的,可用於此示例。 – user1282437
這看起來不像一個問題。 – tiago