我有一系列从相机拍摄的图像。图像由手和周围环境组成。除了手之外,我需要删除所有内容。
我是图像处理新手。有人会帮助我解决上述问题。我很乐意使用C和Matlab。
答案 0 :(得分:4)
一个非常简单的方法,如果你有一个固定的背景和一个移动的手(以及相当多的图像!)只是取得每组图像的平均值。如果不出意外,它是对Matlab的温和介绍。
答案 1 :(得分:3)
您要解决的问题的名称是“图像分割”。维基百科页面:wiki是一个好的开始。
如果照明一致性对您来说不是问题,我建议从简单的RGB阈值处理开始,看看在尝试任何更复杂的事情之前,您能走多远。
答案 2 :(得分:0)
查看OpenCV,一个用于计算机视觉应用的FOSS库。具体来说,请参阅Video Surveillance模块。有关MATLAB中背景减法的详细信息,请参阅此EETimes article。
答案 3 :(得分:0)
您可以指定您拥有的图像类型。背景是移动还是静止?对于静态背景,它有点简单。您只需从背景图像中减去传入的图像。您可以使用一些形态学操作使其看起来更好。它们都取决于您拥有的图像质量。如果你有移动背景我会建议你去基于颜色的分割。将图像适当地转换为YCbCr然后转换为阈值。我知道有一些论文可用(但我没有时间找到它们)。我建议先阅读它们。这是一个可能对您有帮助的链接。阅读皮肤细分部分。
http://www.stanford.edu/class/ee368/Project_03/Project/reports/ee368group08.pdf
答案 4 :(得分:0)
背景减法很容易实现(将背景估计为所有帧的平均值,然后从背景中减去每个帧并产生绝对差值)但不幸的是,只有1.相机具有手动增益和曝光2.照明条件不适用改变3.background是静止的。 4.背景可见比前景长得多。
根据你的描述,我假设情况并非如此 - 所以你可以使用 - 正如已经指出的那样 - 将颜色作为从背景中分割前景的一种手段。因为它是一只手,你试图隔离最好的赌注是学习手的颜色。 opencv提供了一些这样做的方法。如果你想自己做这个,你只需要获得一些手部像素的颜色(你需要手动指定至少一个帧)并将它们转换为HUE(它以亮度独立的方式封装颜色。肤色有一个非常恒定的色调),然后制作一个HUE直方图。将其与其余像素进行比较,然后确定色调是否足够相似。