我正在使用 OpenCV 处理一些视频,其中用户将手放在墙上的不同部分。我已经选择了一些感兴趣的区域,我目前只是cv2.absdiff
在没有用户和当前帧的墙壁的原始图像上使用,通过查看平均像素差来检测用户是否将手放在感兴趣的区域中。如果它高于某个阈值,我认为该区域“已激活”。
我遇到的问题是某些视频剪辑包含导致用户在某些 ROI 上投射阴影的照明和位置,从而使它们高于阈值。区分图像时是否有过滤掉阴影的好方法?
我正在使用 OpenCV 处理一些视频,其中用户将手放在墙上的不同部分。我已经选择了一些感兴趣的区域,我目前只是cv2.absdiff
在没有用户和当前帧的墙壁的原始图像上使用,通过查看平均像素差来检测用户是否将手放在感兴趣的区域中。如果它高于某个阈值,我认为该区域“已激活”。
我遇到的问题是某些视频剪辑包含导致用户在某些 ROI 上投射阴影的照明和位置,从而使它们高于阈值。区分图像时是否有过滤掉阴影的好方法?
OpenCV 有一个基于高斯混合的背景减法器,它还可以选择考虑阴影。您可以使用它来代替 absdiff。与 absdiff 相比,MOG 可能有点慢。
或者,您可以转换为 HSV,并检查色调是否发生变化。
您可以首先检测原始图像中的阴影区域,并将它们从差异成像部分中排除。本文提供了一种简单但有效的方法来检测图像中的阴影。他们探索不受阴影影响的色彩空间。