Python 使用OpenCV检测手部

Python 使用OpenCV检测手部,python,opencv,computer-vision,motion-detection,Python,Opencv,Computer Vision,Motion Detection,我想使用openCV来检测一个人何时举起或放下一只手或双手。我已经浏览了python opencv提供的教程,但似乎没有一本能胜任这项工作。在这两个人的前面有一个摄像头,距离他们大约50厘米(所以你可以从腰部以上看到他们)。这个人可以举起或放下每只手臂,或者两只手臂,我必须检测他们何时这样做。(摄像机安装在过山车的横杆上;这意味着背景总是在变化) 如何在尽可能快的时间内检测到这一点?它不必是实时检测,但不必超过0.5秒。整个图像为640x480。现在,由于手只能出现在图像的顶部,这将使搜索区域减

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

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

谢谢,,
Stefan F.

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

  • canny边缘检测
  • 具有足够结构元素的形态学(侵蚀/扩张的简单组合也可能足够)
  • 使用自适应阈值转换为BW
  • 使用表示预期覆盖区域的掩码对结果进行Xor
  • 在掩码的每个区域中由xor返回的索引数是您应该使用的索引
  • 这非常快,您可以在0.5秒内进行多次迭代,并使用平均值。此外,您还可以检测人脸并使用它们来调整遮罩的位置,但这将更加昂贵:)


    希望对您有所帮助

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

  • canny边缘检测
  • 具有足够结构元素的形态学(侵蚀/扩张的简单组合也可能足够)
  • 使用自适应阈值转换为BW
  • 使用表示预期覆盖区域的掩码对结果进行Xor
  • 在掩码的每个区域中由xor返回的索引数是您应该使用的索引
  • 这非常快,您可以在0.5秒内进行多次迭代,并使用平均值。此外,您还可以检测人脸并使用它们来调整遮罩的位置,但这将更加昂贵:)


    希望这能有所帮助

    您是否可以详细说明您在示例中遗漏了什么?您好。对本文提出的算法可以在HSV颜色空间中进行肤色检测,但我需要检测整个手+手臂,而不仅仅是手势。有时我的手可能是有色的,有时这个人可能戴着手套。你能不能详细说明一下你在这个例子中遗漏了什么?喂。对本文提出的算法可以在HSV颜色空间中进行肤色检测,但我需要检测整个手+手臂,而不仅仅是手势。有时我的手可能是有色的,有时这个人可能戴着手套。