在opencv中筛选帧时过滤掉阴影



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

我遇到的问题是,一些视频剪辑包含的照明和位置会导致用户在某些ROI上投下阴影,从而使ROI高于阈值。在处理图像时,有没有一种好的方法可以过滤掉阴影?

OpenCV有一个基于高斯混合的背景减法器,它还可以选择考虑阴影。你可以用这个来代替absdiff。不过,与absdiff相比,MOG可能有点慢。

或者,您可以转换为HSV,并检查色调是否不变。

您可以首先检测原始图像中的阴影区域,并将其从差异成像部分中排除。本文提供了一种简单而有效的图像阴影检测方法。他们探索一个对阴影不变的颜色空间。

最新更新