如何使用TVL1 OpenCV函数计算光流

Eha*_*awy 6 python opencv opticalflow

我正在尝试找到用于使用tvl1 opencv函数计算光流的python示例,createOptFlow_DualTVL1但似乎没有足够的文档。

有人可以让我这样做吗?我曾经calcOpticalFlowFarneback在这里提到http://docs.opencv.org/master/d7/d8b/tutorial_py_lucas_kanade.html,但它没有给我准确的结果,tvl1是否足够好,如果没有,我应该寻找另一种方法吗?

[[编辑]]

我有一些区域来自选择性搜索,我只想让区域保持运动,因此计算给定帧的OF,然后获取每个区域的平均值即可。在本文第3.1节中也对此进行了描述

谢谢。

小智 6

更改此行(http://docs.opencv.org/master/d7/d8b/tutorial_py_lucas_kanade.html中的密集光学示例):

flow = cv2.calcOpticalFlowFarneback(prvs, next, None, 0.5, 3, 15, 3, 5, 1.2, 0)
Run Code Online (Sandbox Code Playgroud)

通过这些:

optical_flow = cv2.DualTVL1OpticalFlow_create()
flow = optical_flow.calc(prvs, next, None)
Run Code Online (Sandbox Code Playgroud)

可以在此处找到参数说明:http : //docs.opencv.org/3.3.0/dc/d47/classcv_1_1DualTVL1OpticalFlow.html

  • 在 opencv 4 中,这是 `cv2.optflow.createOptFlow_DualTVL1`,请参阅 https://docs.opencv.org/4.1.0/d2/d84/group__optflow.html (3认同)
  • @gerrit 是正确的,但您需要安装 `opencv-contrib-python` 包才能获取 `cv2.optflow` 模块。 (2认同)