一、阴影的特点及处理方法


产生阴影。阴影和运动目标一样,与背景有明显的差别,并作相同的运动。因而在进行运动目标检测时,阴影会被误认为是目标,对目标提取影响比较显著,并会对后续的跟踪、行为识别,产生负面影响。因此在运动目标检测阶段,应将阴影部分去掉。

   阴影有许多不同类型。一种是目标自身的部分位置因没有光照而产生的阴影,称为自阴影(self-shadow);另外一种是由于光照在对象的周围产生的阴影,称为投影阴影(cast-Shadow)。本文只考虑后者。通常,去除阴影的方法可分为基于模型的方法和无模型的方法两种。基于模型的方法是对场景中的目标根据先验知识,建立特征模型以区分阴影和目标,该方法效果较好,但建模的过程复杂耗时,通常应用在特定的场合无模型的方法则是从人们的视觉印象出发,利用目标和阴影的光照特性、颜色、几何特征来区别,该方法的计算量少。

   按照人们的视觉系统对阴影的认识,可以把它看作半透明区域,具有三个特点:

    (1)相较原背景,被阴影遮挡的背景像素点的颜色有所改变,但变化不大。
    (2)这些像素点的饱和度变小了。
    (3)这些像素点的亮度明显降低了,即阴影使背景变得更黑。

阴影的识别与去除。由于RGB颜色空间表示的图像是将色度和亮度信息混合进了R、G、B三个分量中,而对阴影的处理需要利用独立的色度和亮度信息。因而本文将图像转换到HSV颜色空间来进行阴影的检测与消除。


                      

通过opencv给物体增加阴影_像素点


二、HSV空间的阴影检测与消除

背景模型中对应的像素点值相比较,若其包含的相应色度和饱和度都小于一定的阈值,那么就认为该点为阴影。

    具体步骤如下:
    第一步:颜色空间转换与通道分离。

分离,获得色度H、饱和度S和亮度V三个通道的图像。

    第二步:阴影检测。

像素,还有阴影像素。这里将当前图像H,S通道的图像中属于前景目标区域的各个像素点与背景图像的对应像素点相减,其差与阈值比较。若像素点的色度H和饱和度S均比阈值小,则该像素点为阴影。设矩阵舶口如Ⅵ表示各点是否为阴影,公式如(3.19)所示。

          

通过opencv给物体增加阴影_颜色空间_02

弱,光线越强,a值越小,由于阴影部分的像素点的亮度V必然是小于非阴影部分像素点的亮度,故B < l。

    第三步:阴影消除。

    在前景图中将阴影矩阵 shadowk 为 1 的对应像素点值置为 O(黑色),消除阴影。

与RGB颜色空间相比,使用HSV颜色空间可以对色度,饱和度,亮度信息分别处理,充分利用了图像的颜色信息。阴影处理的效果图如图3.5所示,(a)为第262帧为未经阴影处理的前景图像,(b)是按本文方法作了阴影处理后的前景图像,可以很明显地观察到左边目标下面的阴影被去除了。

              

通过opencv给物体增加阴影_像素点_03