我一直在运行官方文档页面中给出的密集光流的Python实现代码。在代码的某一行,他们使用
mag, ang = cv2.cartToPolar(流[...,0], 流[...,1])。
当我打印 mag 的值时,我得到这些 -请检查此图像以获取我得到的输出 https://i.stack.imgur.com/QxL1R.png
我不知道如何理解这个输出。
我的最终目标是使用光流来获得每帧的合成值或平均运动值。
引用您使用的相同 OpenCV 教程
我们得到一个带有光流向量 (u,v) 的 2 通道阵列。
这就是密集光流的输出。基本上,它告诉您每个点如何以矢量方式移动。(u,v)
只是向量的笛卡尔表示,它可以转换为极坐标,这意味着角度和大小。
角度是像素移动的方向。幅度是像素移动的距离。
在许多算法中,您可以使用幅度来了解像素是否移动(例如,小于 1 表示没有移动)。或者,如果您正在跟踪一个知道初始位置(即该对象的像素位置)的对象,您可能会发现大多数像素移动到的位置,并使用该信息来确定新位置。
顺便说一句,除非指定,否则 cartToPolar 返回以弧度为单位的角度。以下是文档的摘录:
cv2.cartToPolar(x, y[, magnitude[, angle[, angleInDegrees]]]) → magnitude, angle
angleInDegrees
必须是True
如果你需要它的度数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)