我正在研究计算视频中光流的Horn-schunck方法。我的代码是用C语言编写的,这意味着我从头开始实现所有的算法,包括对图像进行灰度缩放,计算导数等。我不能完全吸收该方法的本质。我得到的最终流矩阵将包含每个像素的位移向量,对吗?这意味着对于每个像素,流矩阵中的值将指示它在下一个图像中的移位量。
当我的所有像素值都在0-255之间时,我的所有计算都是在这些像素值上完成的,结果输出给出了位移,比如1920X1080图像。
发布于 2013-03-29 06:17:35
该方法的结果将是一个具有两个通道或两个矩阵的矩阵,一个用于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实现。虽然阅读代码需要一些时间,但您可以放心,这是实现此方法的一种非常有效的方式。
https://stackoverflow.com/questions/15155832
复制相似问题