我已经实现了一种密集光流算法,并希望使用以下颜色模型进行可视化:
(颜色表示某一点的流动方向,强度表示位移向量的长度)
我已经实现了一个简陋版本的可视化。
![enter image description here](https://istack.dev59.com/A9xns.webp)
我已经实现了一个简陋版本的可视化。
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
这个程序一般情况下可以生成漂亮的图片,但是速度很慢。
因此我的问题是:有没有人能帮我加快可视化速度?如果有更好的方式来可视化密集流,则更好。