如何在 Matlab 中匹配 2 个二值图像的手形?

How to match the hand shape of 2 binary images in Matlab?

我正在尝试制作手势鼠标,最后我成功地从 rgb 图像中提取了手的黑白形状。

现在我的问题是如何匹配手形?

我有这样一张图片:

像这样从相机中挑选的新的:

我试过 SURF 功能,但即使握紧手也找不到功能!

如果您知道人们的手会放在哪里,您可以简单地将像素值相加并将它们与阈值进行比较(或立即为每只手校准它们)。

让我们假设您的手部图像被加载到一个名为 handImage

的 2D 数组(3D 数组是一个简单的扩展)中
  1. 计算手闭合时所有像素的总和

    handclosed = sum(handImage1(:));

  2. 计算手牌所有像素的总和

    handopen = sum(handImage2(:));

  3. 假设张开的手在您的图像上有更多的白色,我们将假设 handopen > handclosed。因此,我们定义

    handthreshold = (handopen + handclosed) / 2;

  4. 最后,您将为所有后续图像取您手部图像的总和。如果此总和大于阈值,则假设手是打开的,否则假设它是关闭的。