Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to compute optical flow using tvl1 opencv function

I'm trying to find python example for computing optical flow with tvl1 opencv function createOptFlow_DualTVL1 but it seems that there isn't enough documentation for it.

Could anyone please let me do that? I've used calcOpticalFlowFarneback mentioned here http://docs.opencv.org/master/d7/d8b/tutorial_py_lucas_kanade.html but it is not giving me accurate results, will tvl1 good enough and if not is there another method I should look for?

[[EDIT]]

I've some regions come from selective search, I want keep only regions with motion in it, so computing the OF for a given frame and then get the avg in each region could do it. It's also described in this paper section 3.1

Thanks.

like image 764
Ehab AlBadawy Avatar asked Jun 17 '16 00:06

Ehab AlBadawy


1 Answers

Change this line(Dense Optical example in 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)

By these:

optical_flow = cv2.DualTVL1OpticalFlow_create()
flow = optical_flow.calc(prvs, next, None)

The parameter descriptions can be found here: http://docs.opencv.org/3.3.0/dc/d47/classcv_1_1DualTVL1OpticalFlow.html

like image 186
Dani Cores Avatar answered Sep 24 '22 04:09

Dani Cores