Я реализован алгоритм плотного оптического потока, и я хочу, чтобы визуализировать его с помощью следующей цветовой моделиВизуализация оптического потока с цветовой моделью
(цвет обозначает направление потока в некоторой точке, интенсивность обозначает длину вектора смещения)
Я реализовал грязную версию визуализации
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
Это производит хороший I п общий случай картины, но это действительно медленно
Так что мой вопрос может кто-нибудь помочь мне сделать эту визуализацию быстрее? Если кто-то знает лучший способ визуализации плотного потока, это может быть классно
Что означает «действительно медленный»? – Micka
@ Микка визуализации потока размером 2637 x 1300 занимает несколько минут. Это очень важно для меня, потому что я хочу использовать его в warping итерации, чтобы отслеживать, как изменяется поток в процессе оптимизации. И, по крайней мере, уровень визуализации пирамиды может занять много времени. –
Если вы суммируете высоту и ширину, то сколько раз ваш цикл for работает. Вы видите причину его медленной? – GPPK