如何使用Emgu检测对象的方向和数量?

时间:2011-05-04 07:56:11

标签: c# opencv video-processing emgucv

如何使用Emgu检测对象的方向和数量?

物体向各个方向移动(2D);并且相机正在看这些物体(在2D表面上)。物体在形状上可能没什么差别,但足够相似。

由于

1 个答案:

答案 0 :(得分:3)

  1. 在连续帧上调用cvAbsDiff(可能在每个n - 和(n - gap) - 帧上)以检测更改并使用阈值来获取更改掩码
  2. 对于每个帧调用cvUpdateMotionHistory并将获取的掩码作为参数传递
  3. 获取动作片段(对象)及其方向:
    1. 通过cvCalcMotionGradient通过之前通话累积的动作历史记录
    2. cvSegmentMotion将动作拆分为细分,并使用cvCalcGlobalOrientation
    3. 为每个细分计算角度
  4. 类似的步骤在OpenCV库中分发的motempl.c示例中编码。

    更新

    我认为他们已经实现了几乎完整的OpenCV绑定,并且界面中的差异是添加OOP的结果。例如,这是一个AbsDiff方法。但运动相关的东西有不同的结构。使用MotionInfo方法获取此example(我在谷歌搜索中找到)的运动角度。