我正在使用opencv实现手指跟踪系统
并使用
calcOpticalFlowPyrLK(pGmask,nGmask,手指,轨道,状态,错误);
执行LK跟踪器。
我不清楚这个概念,在实现LK跟踪器后,应该如何检测手指的运动?另外,跟踪器获取最后一帧和当前帧,如何检测一系列 Action 或连续手势(例如5帧内)?
最佳答案
calcOpticalFlowPyrLK
的第四个参数(此处为track
)将包含第二张图像(此处为nGmask
)中输入要素的计算出的新位置。
在简单的情况下,您可以分别估计fingers
和track
的质心,以推断运动。可以根据从fingers
的质心指向track
的质心的 vector 的方向和大小来做出决策。
此外,复杂的运动可以视为时间序列,因为运动由在时间间隔上进行的一些连续测量组成。这些测量可以是上述 vector 的方向和大小。因此,任何运动都可以表示如下:
("label of movement", time_series), where
time_series = {(d1, m1), (d2, m2), ..., (dn, mn)}, where
di is direction and mi is magnitude of the ith vector (i=1..n)
n * 2
测量值(采样n
时间)组成,这是唯一如何识别运动的问题?a
字母等,那么问题可以简化为:如何使时间序列与自身对齐?https://stackoverflow.com/questions/30097759/
相关文章:
python - Spatstat:给定二维点列表,如何将它们连接到多边形中,并进一步使其成为研究区
python-2.7 - 如何提高Python PIL的最终图像质量和清晰度?
android - javacv和opencv之间的转换以从Mat中获取均值和stdDev
opencv - BackgroundSubtractorMOG2 阴影检测在阳光充足的场景中不起作
android - 在OCR之后从Android中的图像检测字体颜色
opencv - 在 Opencv 中处理相机流,使用 FFMPEG 将其推送到 RTMP(NGIN
delphi - 当我尝试安装 Delphi-OpenCV。我得到 "%1 is not a val