Horn-Schunck 光流计算
Posted
技术标签:
【中文标题】Horn-Schunck 光流计算【英文标题】:Horn-Schunck optical flow calculations 【发布时间】:2013-03-01 10:44:47 【问题描述】:我正在研究用于计算视频光流的 Horn-schunck 方法。我的代码是用 C 语言编写的,这意味着我要从头开始实现所有算法,包括对图像进行灰度缩放、计算导数等。我无法完全吸收该方法的精髓。我得到的最终流矩阵将包含每个像素的位移向量,对吧?对于每个像素,流矩阵中的值表示它在下一张图像中的位移量。
当我的所有像素值都在 0 到 255 之间时,我的所有计算都在这些像素值上完成,结果输出给出了位移,例如 1920 X 1080 图像。
【问题讨论】:
【参考方案1】:您的方法的结果将是一个具有两个通道或两个矩阵的矩阵,一个用于 u(或 dx)方向/位移,另一个用于 v(或 dy)方向/位移。这意味着你有一个向量场
[u(x,y) v(x,y] = optical flow for each position (x,y) in your image
此向量字段(此字段的值)具有浮动精度。这意味着例如u(0,0) = 0.2 v(0,0) = 0.13
。因此,在您的计算机的一部分中,您已将输入图像的灰度值转换为浮动值。这主要是在计算梯度时完成的,例如用 sobel 算子。 OpenCV 库有一个 Horn-Schunk 实现。虽然阅读代码需要一些时间,但您可以放心,这是实现此方法的一种非常有效的方式。
【讨论】:
以上是关于Horn-Schunck 光流计算的主要内容,如果未能解决你的问题,请参考以下文章