【发布时间】:2020-08-18 04:13:28
【问题描述】:
我试图通过计算两个图像之间的光流大小来获得运动量(在 Python 3.7 和 cv2 v4.0 中)。但是通过相同的图像,我看到最终值不是确定性的。有时打印inf,有时打印7.372749678324908e-05。
有什么问题?为什么它不是确定性的?!
def getOpticalMag(prev_image, curr_image):
prev_image_gray = cv2.cvtColor(prev_image, cv2.COLOR_BGR2GRAY)
curr_image_gray = cv2.cvtColor(curr_image, cv2.COLOR_BGR2GRAY)
flow = cv2.calcOpticalFlowFarneback(prev_image_gray, curr_image_gray, flow=None,
pyr_scale=0.5, levels=1, winsize=15,
iterations=2,
poly_n=5, poly_sigma=1.1, flags=0)
mag, ang = cv2.cartToPolar(flow[...,0], flow[...,1])
return np.mean(mag)
【问题讨论】:
-
我也有同样的问题和有趣的事情:不确定的部分是(非常令人惊讶)
cv2.cartToPolar。flow对于我的图像总是相同的,但是转换的行为很奇怪。我使用 OpenCV 4.5.1
标签: python python-3.x opencv cv2 opticalflow