I've implemented a dense optical flow algorithm and I want to visualize it with following color model
(color denotes direction of flow at some point, intensity denotes length of displacement vector)
I've implemented a dirty version of the visualization
def visualizeFlow(u, v):
colorModel = cv2.imread('../colormodel.png')
colorModelCenter = (colorModel.shape[0]/2, colorModel.shape[1]/2)
res = np.zeros((u.shape[0], u.shape[1], 3), dtype=np.uint8)
mag = np.max(np.sqrt(u**2 + v**2))
if mag == 0:
return res, colorModel
for i in xrange(res.shape[0]):
for j in xrange(res.shape[1]):
res[i, j] = colorModel[
colorModelCenter[0] + (v[i, j]/mag*colorModelCenter[0]),
colorModelCenter[1] + (u[i, j]/mag*colorModelCenter[1])
]
return res, colorModel
It produce nice in general case pictures but it really slow
So my question is can anyone help me make this visualization faster? If somebody knows a better way to visualize dense flow it may be cool