Python 如何使cv2.calcOpticalFlowFarneback()更加自信

Python 如何使cv2.calcOpticalFlowFarneback()更加自信,python,opencv,Python,Opencv,我用cv2.calcOpticalFlowFarneback()做了一个小测试,以检查其结果的稳定性。 在我的测试中,我用相机拍摄了一张快照,用(0,10)距离剪切了两幅重叠的图像。 我希望每个像素都有(0,10),但结果非常不同 import cv2 cap = cv2.VideoCapture(0) ret, img = cap.read() gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.imshow('gray', gray) lef

我用
cv2.calcOpticalFlowFarneback()
做了一个小测试,以检查其结果的稳定性。 在我的测试中,我用相机拍摄了一张快照,用
(0,10)
距离剪切了两幅重叠的图像。 我希望每个像素都有
(0,10)
,但结果非常不同

import cv2

cap = cv2.VideoCapture(0)
ret, img = cap.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('gray', gray)

left = gray[:-5, :]
right = gray[5:, :]

flow = cv2.calcOpticalFlowFarneback(left, right, 0.5, 3, 15, 3, 5, 1.2, 0)
flowx = flow[:,:,0]
flowy = flow[:,:,1]

cv2.imshow('flowx', flowx)
cv2.imshow('flowy', flowy)

print 'x.mean:', flowx.mean()
print 'x.max:', flowx.max()
print 'x.min:', flowx.min()

print 'y.mean:', flowy.mean()
print 'y.max:', flowy.max()
print 'y.min:', flowy.min()

cv2.waitKey()
结果:

x.mean: -0.00440598979749
x.max: 1.53141
x.min: -1.95973
y.mean: -2.53464987664
y.max: 0.844686
y.min: -5.43879
如何使其更接近预期的
(0,10)
结果