【发布时间】:2020-07-26 06:02:53
【问题描述】:
这是一个更普遍的问题,因为我不知道如何有效地解决或解决这个问题:
- 我正在使用 OpenCV 获取移动对象的实时轮廓点((x,y) 坐标元组列表)
- 我想在这些轮廓点内绘制矩形,具体取决于其中是否有角度
假设下图显示了我手臂的轮廓点。我希望它能够检测一定角度的角度,并根据它在里面画一些矩形。
这背后的整个想法是让它稍后在 pygame 中与一些游戏对象(例如球)进行交互。例如,用手或棍子或任何在相机前移动的物体移动球。
这就是为什么我想避免使用更多高级库(如 openpose)来获取我的手臂骨架,因为游戏应该可以与任何类型的对象一起玩,而且运行流畅。
如果您知道可以为这个问题命名的合适方法,我将不胜感激!
到目前为止我想到的方法:
我最初的想法是计算每个相邻轮廓点的距离和角度。如果角度大于某个角度,它将被认为是一个新的集群。然而,这似乎并不可靠,因为手(手指)有锋利的边缘,我不想得到小东西的骨架,而是像上图那样简单的大形状
我的下一个想法是将所有轮廓点连接在一起并形成一个多边形。但是,这会创建一个复杂的蒙版,并且轮廓点不是恒定的,因此它会振荡太多。这就是为什么我认为一个简单的矩形就足够了,即使它没有像素完美的形状
【问题讨论】:
标签: python opencv pygame openpose