在 Android 应用程序中检测手部和分割图像

Detecting hand and segmenting image in Android application

我开发了一个 android 应用程序来捕获和处理图像。我想添加以下功能:

似乎 Android OpenCV 可以工作,但我不确定它是否 a) 足够强大来执行此操作以及 b) 如何将其用于此功能。

这是一个非常广泛的问题,但让我尝试给出一些建议。

通常您可以将此视为模式检测问题。关键是要定义在您的情况下模式精确意味着什么,即您希望在图像上检测哪种手势?如果你的目标是检测一般的手并且你可以假设将检测到特定的手势,我建议手用直闭合的手指:

下面是原因的解释。这种模式实际上是可检测的,有一个很好的理由:它有一个始终在该模式中观察到的内部特征,并且这个特征对于背景是不变的。特点是指间"lines"。正如您所观察到的,用闭合的直手指可以检测到几个直的、平行的梯度向量:

它们对于背景是不变的。特别是,您不能依赖手的检测边界,因为那里的梯度取决于背景。我认为该方法也适用于不同的肤色,因为该特征显然是渐变,与肤色无关。

过去我一直在研究这样的 haar 分类器,我用这些例子训练过。结果令人满意。我用几百个正模式和几千个负模式训练我的分类器。