图像处理之天空区域识别

近几年来,去雾方法得到广泛的研究,汤晓鸥等人发现无雾图像相对于雾化图像具有较高的对比度,通过最大化恢复图像的对比度来实现图像去雾,但由于该方法没有从物理模型上恢复真实的场景反射率,图像去雾后有可能出现颜色过饱和失真。 Kaiming He提出了一种基于暗通道先验的方法,即在有雾图像的特定窗中至少有一个颜色分量的值是零,该算法利用最小值滤波估算出介质传播函数,然后利用软抠图原理对估算的介质传播函数进行优化估计,达到了较好的去雾效果。软抠图需要较高计算量,很难得到实际应用。所以后来Kaiming He又提出了引导滤波法,来精细化透射率。

通过对比实验发现,场景中如果存在较大的天空区域的话,Kaiming He提出的暗通道先验的理论在天空区域将不成立,图像去雾后天空区域存在失真,特別是在天空区域不明显的浓雾环境下。

一  为什么天空区域识别很重要?

人们常用传感器进行测距,在自主导航领域常见测距传感器有两类:第一类是主动式传感器,比如雷达,激光传感器,这类传感器比较精确,但缺点是比较贵;第二类是被动式传感器,比如视觉传感器。这类传感器成本较低,主要依赖于算法,但有些场景精度不好。但随着技术的发展,这些精度问题都可以得到解决。

处理不同透射率区域

改进的基于暗原色先验的图像去雾算法
作者: 蒋建国

对一些含雾图像,基于暗原色先验的去雾结果出现色彩失真,因为含天空、水面等大面积明亮区域的图像,他们的像素值很大,在此区域找不到像素值接近于0的暗原色。

一般情况下大气光A的取值和天空部分应该是非常接近的,而那些符合暗通道的地方则远离天空。

识别出天空区域单独处理

专利《一种基于天空识别与分割的暗通道先验去雾方法》

重点:

1、进行天空识别与分割,确定天空区域与非天空区域不同透射率。
2、引导滤波优化透射率,输出头屋图像

相似操作识别天空区域

1、天空部分平坦区域多,处理成梯度图表示图像的像素落差,梯度值越小的区域表示为平坦区域。

2、设定一个阈值来初步划分天空区域与非天空。

3、对第二步的结果进行扩展处理。

4、对第三步的图的像素平均亮度进行判断,如果大于阈值T则认为是真天空区域。(阈值可以设置为0.8,灰度值为204左右均可),自我构思

该方案可以消除去雾图像边缘处的光晕现象,提高处理效率。

分割天空区域

专利《一种含天空区域雾天图像的去雾方法、服务器及系统 》

步骤

1、利用预设的亮度阈值 + 图像梯度信息,分割天空区域和非天空区域,梯度阈值选择概率最大的梯度,避免误分割;
2、利用四分法或者天空区域大气光值;
3、非天空区域加权图像融合的方法细化透射率;
4、图像去雾


我们希望分为天空、似天空和非天空区域,三个区域采用不同的光透射率。
注:如果其他区域的像素满足以下两个条件认为是似天空区域:
<1> 弱纹理区域
<2> 像素值和Strue区域的平均像素值 相差很小。

其他相关算法程序可以看看我的github

最后修改:2020 年 07 月 07 日
如果觉得我的文章对你有用,请随意赞赏