在opencv中区分帧时过滤掉阴影

时间:2013-06-25 01:46:27

标签: opencv image-processing computer-vision video-processing

我正在使用OpenCV处理一些用户将手放在墙壁不同部分的视频。我选择了一些感兴趣的区域,我目前只在墙上的原始图像上使用cv2.absdiff而没有用户和当前帧来检测用户是否通过查看感兴趣的区域平均像素差异。如果它高于某个阈值,我认为该区域“已激活”。

我遇到的问题是某些视频剪辑包含的光照和位置导致用户在某些ROI上投下阴影,使得它们高于阈值。在对图像进行衍射时是否有一种过滤阴影的好方法?

2 个答案:

答案 0 :(得分:5)

OpenCV有一个Mixture of Gaussian based background subtractor,它还有一个帐户阴影的选项。您可以使用此而不是absdiff。与absdiff相比,MOG可能有点慢。

或者,您可以转换为HSV,并检查Hue是否不会更改。

答案 1 :(得分:1)

您可以先检测原始图像中的阴影区域,然后将其从差异成像部分中排除。 This paper提供了一种简单但有效的方法来检测图像中的阴影。他们探索了一种对阴影不变的色彩空间。