如何使用Emgu检测物体的方向和数量?
物体向各个方向移动(2D);一台摄像机正在观察这些物体(在二维表面上)。物体在形状上可能差别不大,但足够相似。
谢谢
- 在连续的帧上调用
cvAbsDiff
(可能在每个n
-th和(n - gap)
-th帧上)来检测变化并使用阈值以获得变化掩码 - 对于每一帧调用
cvUpdateMotionHistory
并传递获得的掩码作为参数 - 获取运动段(对象)及其方向:
- call
cvCalcMotionGradient
passing motion history of previous calls - 通过
cvSegmentMotion
将运动分割成段,并使用cvCalcGlobalOrientation
计算每个段的角度
- call
类似的步骤在OpenCV库中分发的motempl.c
示例中编码。
我认为他们已经实现了几乎完整的OpenCV绑定,接口上的差异是添加OOP的结果。例如,这里有一个AbsDiff方法。然而,与运动相关的物质具有不同的结构。使用MotionInfo
方法来获得运动角度,就像这个例子(这是我在谷歌搜索中发现的)。