.l〈D_ave_p〈D_ave+D_std*0.1
[0062] 则将Reglmg[p]标记为阴影区域(value = l),并将L中的值添加到DIS_L中;
[0063] f、更新p = p+l,回到步骤b反复循环,直到找不到可以标记的区域为止,生长算法 结束。
[0064] 阴影检测是计算机图像处理和计算机视觉中的研究热点和难题,研究鲁棒而有效 的阴影检测算法具有非常重要的理论研究意义和应用价值。由于成像环境的复杂性,使得 图像上阴影的状态呈现不确定性的特征,给阴影的实际检测带来很大的不便,仅根据阴影 的明暗特征无法获得理想的检测结果。
[0065] 本发明基于阴影的多种颜色不变性特征,引入计算机视觉领域的视觉注意机制, 提出一种新的有效的阴影检测方法,主要包含如下两点创新:1)根据颜色恒常性研究成果, 提取了阴影的多种颜色不变性特征,采用视觉注意模型中的特征显著图模型,将多种阴影 特征结合在一起,生成阴影显著图作为阴影检测的基础数据,然后基于此数据进行阴影检 测。2)采用SLIC(Simple Linear Iterative Clustering)算法对图像进行超像素分割,提 出基于对象的自适应阈值生长算法,对阴影检测的初步结果进行修正,从而获得更完整的 阴影检测结果。
[0066]有益之处在于:本发明基于颜色恒常性特征和视觉注意机制中的显著图原理,提 出了一种基于多特征融合的阴影检测算法,提取了阴影的多种颜色不变特征,并引入视觉 注意模型中的有关概念和思想,将多种颜色特征组合到一起,生成阴影显著图用于阴影的 检测。多特征有利于发挥各种颜色不变特征的优势,避免了阴影单一颜色特征的不足,提高 阴影检测的效果;采用SLIC算法进行超像素分割并对阴影检测的初步结果进行优化和后处 理,避免了基于像素的检测方法带来的噪声影响。
【附图说明】
[0067] 图1是本发明的原始图像的灰度图;
[0068] 图2为根据图1计算出来的阴影亮度特征图;
[0069]图3为对原始RGB图像进行C1C2C3空间变换后提取的C3分量;
[0070]图4为对原始RGB图像进行B_Y特征提取的结果图;
[0071 ]图5为对Lum特征进行归一化的结果;
[0072]图6为对C3特征进行归一化的结果;
[0073]图7为对B_Y特征进行归一化的结果;
[0074]图8为计算所获得阴影显著图;
[0075] 图9对阴影显著图进行二值化提取的初始阴影区域;
[0076] 图10为对原始RGB图进行SLIC分割的结果;
[0077]图11为最终的阴影检测结果。
【具体实施方式】
[0078]以下结合附图和具体实施例对本发明作具体的介绍。
[0079]本发明中使用的原始图像为RGB真彩色图像,记为Img。其中,对于红、绿、蓝三个通 道分别记为R、G、B;像素的位置用行列号表示,如图像Img的第y行第X列的像素记为Img[y, x] 〇
[0080] (1)、对原始Img进行亮度特征(luminance)提取,记为Lum。
[0081]具体为:先提取原始图的灰度图,如图1所示,然后将灰度图的对数倒数作为lum特 征,如图2所示,计算公式如下:
[0082] Gray = (R+G+B)/3
[0083] Lum= 1.0/[5+log(Gray+l)]
[0084] 其中,Gray表示R、G、B颜色值的均值,即灰度值;第2个公式中分母中的1是为了避 免对0求对数的情况,从而保证数学运算的有效性;5是调节因子。
[0085] (2)、将图像Img转换到C1C2C3颜色不变空间,具体计算公式分别为:
[0086] Cl =arctan(G/max(R,B))
[0087] C2 = arctan(R/max(G,B))
[0088] C3 = arctan(B/max(R,G))
[0089] C1C2C3变换是一种非线性变换,对反射光不敏感,适合于阴影检测。通常阴影在C3 通道具有较大的数值,变换后提取C3通道作为阴影的一个特征,如图3所示,其中,max(R,B) 表示R、B两个值中的较大值,max (G,B)表示G、B两个值中的较大值,max (R,G)表示R、G两个值 中的较大值。
[0090] (3)、基于赫林拮抗色原理,对图像Img进行STB模型变换,计算蓝色和黄色差异特 EB_Y,如图4所示。
[0091 ]具体计算公式如下:
[0092] MaxC=max(R,G,B)
[0093] MinC=min(R,G)
[0094] B_Y=(B_MinC)/MaxC
[0095] 其中,MaxC表示3个颜色分量R、G、B中的最大值;MinC表示颜色分量R、G中的较小 值。
[0096] (4)、分别对上述三个特征图像Lum、C3、B_Y进行局部最大值归一化处理,得到归一 化的特征图Lum'(图5)、C3'(图6)、B_Y'(图7)。
[0097]具体计算如下:假设待归一化的特征图像为ftmap,对其进行局部最大值归一化的 伪代码如下:
[0098] M=10
[0099] T=M*threshold
[0100] f tmap = M*Norma1i z e(ftmap)
[0101] peaks =FindLocalMax(f tmap)
[0102] num_peaks = Number(peaks)
[0103] if (num_peaks = = 1):
[0104] ftmap=ftmap*M*M
[0105] else if(num_peaks>l):
[0106] locAvg=Mean( peaks)
[0107] f tmap = f tmap*(M-1o cAvg)*(M-1o cAvg)
[0108] 其中,threshold通常取值为0.1 ;Normalize〇函数的作用是将整个特征图像值线 性变换到〇~1 .〇之间;FindLocalMax()将查找特征图像的局部极值点,返回局部极值点列 表peaks;Number〇函数的作用是计算局部极值点的个数;Mean()函数是计算所有极值点的 平均数。
[0109] (5)、根据归一化特征图像计算阴影显著图,记为S_Sal,如图8所示,计算公式如 下:
[0110] S_Sal = Lum,*C3,*B_Y,。
[0111] (6)、采用大津阈值算法(0STUWiS_Sal进行自适应阈值二值化,获得初始阴影分 割图S0,其中值1表示为阴影,0表示为非阴影,如图9所示。
[0112] (7)、对原始图像Img进行SLIC(Simple Linear Iterative Clustering)超像素分 害lj,如图10所示,获得分割图像Seglmg,将其中每个分割区域分别记为Seglmg[k],k = 0,…, n,共获得η个区域。
[0113] (8)、将初始阴影分割图S0和SLIC分割结果Seglmg进行叠加,然后对Seglmg分割结 果进行标记,具体如下:
[0114] a、依次取出S0分割图中值为1的像素,设该像素位于第y行、第X列,记为S0[y,x]; [0115] b、若S0[y,x]位于分割图Reglmg的第k个区域Reglmg[k],则将Reglmg[k]标记为阴 影区(value = l),否则将Reglmg[k]标记为非阴影区(value = 0) 〇
[0116] (9)、对Seglmg中的每个分割区域Seglmg[k],计算其颜色均值m[k]和重心位置c
[k],其中m[k]、c[k]分别为对应的颜色向量和坐标向量:
[0117] m[k] = [rk,gk,bk]
[0118] c[k] = [xk,yk]
[0119 ]其中,rk、gk、bk分别为第k个分割区域的红、绿、蓝颜色均值;xk、yk分别为第k个分割 区域的重心的X坐标和y坐标。
[0120] (10)、根据分割图像Reglmg中所有分割区域的重心位置坐标c [k],k = 0,···,]!,构 建Delaunay三角网,根据Delaunay三角网信息可获得每个区域Reglmg[k]的邻接区域。
[0121] (11)、计算所有具有邻接关系的阴影区域两两之间的颜色距离,如第i个区域和第 j个区域之间的颜色距离为:
[0122]
[0123] 符尸/Γ仴网网邻按阴影込1?的刚巴距呙俚仔八列表DIS_L[k],k = 0,…,m;其中ri、 gi、bi分别为第i个分割区域对应的红、绿、蓝颜色分量;r j、gj、bj分别为第j个分割区域对应 的红、绿、蓝颜色分量。
[0124] (12)、对Reglmg中标记为1的阴影区域进行生长算法,具体如下:
[0125] a、初始化p = 〇;
[0126] b、从Reglmg中取出第p个区域Reglmg[p],若Reglmg[p