0

我有一系列从相机拍摄的图像。图像由手和环境组成。我需要移除除手以外的所有东西。

我是图像处理的新手。关于上述问题,有人可以帮助我吗?我很喜欢使用 C 和 Matlab。

4

5 回答 5

4

如果您有固定的背景和移动的手(以及很多图像!),一个非常简单的方法是简单地从每个图像中获取一组图像的平均值。如果不出意外,这是对 Matlab 的温和介绍。

于 2011-03-21T17:32:01.843 回答
3

您要解决的问题的名称是“图像分割”。此处的 Wikipedia 页面:wiki是一个好的开始。

如果照明一致性对您来说不是问题,我建议从简单的 RGB 阈值开始,看看在尝试更复杂的方法之前能达到多少。

于 2011-03-21T17:26:27.567 回答
0

看看OpenCV,一个用于计算机视觉应用的 FOSS 库。具体来说,请参阅视频监控模块。有关 MATLAB 中背景减法的演练,请参阅这篇EETimes 文章

于 2011-03-21T17:31:01.513 回答
0

你能指定你有什么样的图像。背景是移动的还是静止的?对于静态背景,它有点简单。您只需从背景图像中减去传入图像。您可以使用一些形态学操作使其看起来更好。它们都取决于您拥有的图像质量。如果您有移动背景,我建议您进行基于颜色的分割。将图像转换为 YCbCr,然后适当地阈值。我知道上面有一些可用的文件(但是我没有时间找到它们)。我建议先阅读它们。这是一个可能对您有所帮助的链接。阅读皮肤分割部分。

http://www.stanford.edu/class/ee368/Project_03/Project/reports/ee368group08.pdf

于 2011-03-21T19:10:39.847 回答
0

背景减法实现起来很简单(将背景估计为所有帧的平均值,然后从背景和阈值中减去每一帧,从而产生绝对差异)但不幸的是,只有在 1. 相机具有手动增益和曝光 2. 照明条件不改变 3.背景是静止的。4. 背景比前景可见的时间长得多。

鉴于您的描述,我认为情况并非如此-因此,您可以使用-正如已经指出的那样-将颜色作为从背景中分割前景的一种手段。因为这是一手牌,所以你要隔离最好的选择是学习手牌的颜色。opencv 提供了一些方法来做到这一点。如果您想自己执行此操作,您只需获取一些手部像素的颜色(您需要为至少一帧手动指定此颜色)并将它们转换为 HUE(它以独立于亮度的方式封装颜色。肤色有一个非常恒定的色调),然后制作一个色调直方图。将其与其余像素进行比较,然后确定色调是否足够相似。

于 2011-06-30T10:44:47.597 回答