1

我想使用 openCV 来检测一个人何时举起或放下手或双手。我浏览了 python opencv 提供的教程,但似乎没有一个能完成这项工作。两个人前面有一个摄像头,距离他们大约 50 厘米(所以你从腰部以上看到他们)。这个人可以抬起或放下每只手臂,或者两只手臂,我必须检测他们何时这样做。(相机安装在过山车的横杆上;这意味着背景总是在变化)

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

谢谢你,斯特凡 F。

4

1 回答 1

1

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

  1. 精明的边缘检测
  2. 具有足够结构元素的morphologyEx(腐蚀/扩张的简单组合可能就足够了)
  3. 使用自适应阈值转换为 BW
  4. 使用表示预期覆盖区域的掩码对结果进行异或运算。
  5. xor 在掩码的每个区域中返回的个数是您应该使用的索引。

这是非常快的,您可以在 0.5 秒内进行多次迭代并使用平均值。您也可以检测面部并使用它们来调整面罩的位置,但这会更昂贵:)

希望有帮助

于 2012-03-05T19:36:51.997 回答