使用OpenCV检测手部

时间:2011-10-26 14:21:44

标签: python opencv computer-vision motion-detection

我想使用openCV来检测一个人举手或双手的举动或降低的时间。我查看了python opencv提供的教程,但似乎没有人能够完成这项工作。有一个摄像头位于2人的前方,离他们约50厘米(所以你从腰部向上看)。这个人能够升高或降低每个手臂或两个手臂,我必须检测他们何时这样做。(相机安装在过山车的杆上;这意味着背景总是在变化)

如何在最快的时间内检测到这一点?它不必是实时检测,但不必超过0.5秒。整个图像是640x480。现在,由于指针只能出现在图像的顶部,这会使搜索区域缩小一半=> 640x240。这将减少在不断变化的背景中搜索某个物体(手)的问题。

谢谢你,  Stefan F。

1 个答案:

答案 0 :(得分:1)

您可以尝试非常基本但有效且快速的解决方案: 在图像的上半部分:

  1. canny edge detection
  2. 形态学具有足够的结构元素(也可以是侵蚀/扩张的简单组合)
  3. 使用自适应阈值
  4. 转换为BW
  5. Xor结果,掩码代表预期的覆盖区域。
  6. 掩码的每个区域中xor返回的数量是您应该使用的索引。
  7. 这非常快,你可以在0.5秒内进行多次迭代并使用平均值。您也可以检测面部并使用它们来调整面具的位置,但这样会更贵:)

    希望有所帮助