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

时间:2015-08-04 09:47:03

标签: matlab image-processing computer-vision

我正在尝试制作一个手势鼠标,最后我成功地从rgb图像中提取手部bw形状。

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

我有这样的图像:

enter image description here

从相机中挑选出一个新的:

enter image description here enter image description here

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

1 个答案:

答案 0 :(得分:0)

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

让我们假设您的手部图像被加载到2D阵列(3D阵列是一个简单的扩展),称为handImage

  1. 计算手闭合的所有像素的总和

    handclosed = sum(handImage1(:));

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

    handopen = sum(handImage2(:));

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

    handthreshold = (handopen + handclosed) / 2;

  4. 最后,您将获取所有后续图像的手部图像的总和。如果此总和大于阈值,则表示手已打开,否则您认为该手已关闭。