作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最佳答案
最简单的方法是计算梯度 vector (x导数和y导数)并在每个像素处找到其方向(atan2(y,x)
)。平均方向是您想要的,而不是平均方向(将会抵消)。因此,应用模数pi,然后对图像进行平均。
计算图像梯度的最佳方法是通过Gaussian gradients。
structure tensor是完成此操作的更可靠的方法。简而言之,它计算梯度 vector 的局部平均值以减少噪声的影响。它通过计算梯度 vector 与其自身的外部乘积来完成此操作,从而产生对称矩阵。然后可以对该矩阵的各个分量进行局部平均(即应用平滑滤波器)。这类似于计算 vector 的 Angular ,将 Angular 加倍以使相反方向上的 vector 相等,然后取平均。
请注意,您可以在3D中应用这些解决方案中的任何一种(您可以将视频数据视为2D +时间= 3D)。这样,您不仅可以计算2D框架内运动的速度和方向,还可以计算沿问题提取的2D图像的方向的速度。图像梯度和结构张量的概念很容易扩展到3D。这种3D方法类似于Lucas-Kanade的光流方法。如果您单击该链接到Wikipedia,您将看到它使用2D结构张量,并沿时间维度添加渐变。
关于python - 确定时空图像的图案方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45547038/
我是一名优秀的程序员,十分优秀!