gpt4 book ai didi

python-3.x - 带有光流的箭袋图?

转载 作者:行者123 更新时间:2023-12-02 16:33:45 26 4
gpt4 key购买 nike

最近我在使用图像进行云运动跟踪,但在许多示例中,当在视频实现中使用 时,会显示根据跟踪对象移动的颤动图。

Quiver 文档主要采用四个参数 ([X, Y], U, V),当 XY 是起点时以及 UV 方向。另一方面,基于this example的光流返回形状为 (200,200) 的图像的形状为 (m, n, l) 的 p1(位移)。我的困惑在于如何对参数进行排序,因为 goodFeaturesToTrack 返回的结果与 p1

相同

¿如何连接这两个组件来绘制云运动的颤动?

最佳答案

我找到了一个很好的解决方案。我在这里使用汉堡出租车序列解释我的所有示例:

  1. 下载出租车序列。
$ curl -O ftp://ftp.ira.uka.de/pub/vid-text/image_sequences/taxi/taxi.zip
$ unzip -q taxi.zip
  1. 获取所有图像并随机选择两个帧
from pathlib import Path
import numpy as np
import cv2 as cv
from PIL import Image
import matplotlib.pyplot as plt

taxis_fnames = list(Path('taxi').iterdir())
taxi1 = Image.open(taxis_fnames[rand_idx])
taxi2 = Image.open(taxis_fnames[rand_idx + 4])
  1. 计算光流
flow = cv.calcOpticalFlowFarneback(np.array(taxi1), 
np.array(taxi2),
None, 0.5, 3, 15, 3, 5, 1.2, 0)
  1. 绘制箭袋
step = 3
plt.quiver(np.arange(0, flow.shape[1], step), np.arange(flow.shape[0], -1, -step),
flow[::step, ::step, 0], flow[::step, ::step, 1])

该步骤是对选取的光流矢量数量进行下采样。 x 位置从 0 到图像宽度,而 y 位置从图像高度反转(否则光流将上下颠倒)从图像高度到 0。在某些情况下,您将不得不更改步长,以便高度和被它整除。

  1. 生成的图像:

enter image description here

关于python-3.x - 带有光流的箭袋图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61943240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com