基于单幅图像的快速去雾算法实现

  基于图像复原的去雾方法中,最有代表性的是暗通道去雾算法,但是暗通道去雾算法的处理时间比较长,不能达到实时处理。在阅读了大量文献及其参考文献,找到能够实时处理的去雾算法,是清华大学写的文章:基于单幅图像的快速去雾算法,作者:刘倩,陈茂华,周东华。
  废话不多说,直接上算法
这里写图片描述
  首先对算法进行一个简单的说明,根据博文去雾技术综述可知,去雾的主要步骤就是估计全局大气光 A 和透射率t(x)
文章中,使用了 L(x) 来代替 A(1t(x))

L(x)=A(1t(x))(1)
因此,本文就是根据输入图像估计 A L(x),然后根据雾天退化模型求取出去雾后的图像。
估计透射率 t(x)
根据博文 去雾技术综述可知,
t(x)1H(x)A(2)
H(x) 三通道中的最小值,并记为
M(x)=mincr,g,b(Hc(x))(3)
因此公式(2)可以变换为
t(x)1M(x)A(4)
对公式(4)右边进行均值滤波
averagesa(1M(x)A)=1averagesa(M(x))A=1yΩ(x)M(y)Asa2(5)
其中, sa 表示均值滤波窗口大小, Ω(x) 表示像素x的 sa×sa 的邻域。均值滤波后的结果能反应 t(x) 的大致趋势,但与真实的 t(x) 还相差一定的绝对值,于是,得出透射率的粗略估计值
t (x)=1Mave(x)A+ψMave(x)A=1δMave(x)A(6)
其中 Mave(x)=averagesa(M(x)) δ=1ψ ψ[0,1] ,因此 δ[0,1] 。为了防止去雾后图像出现整体画面偏暗,这里根据图像的均值来调整 δ ,即
δ=ρmav
mav M(x) 中所有元素的均值, ρ 为调节因子。因此可以得到透射率的计算公式
t(x)=max(1min(ρmav,0.9)Mave(x)A,1M(x)A)(7)
结合公式(1)可得
L(x)=min(min(ρmav,0.9)Mave(x),M(x))(8)

估计全局大气光
公式(5)中第一个等式左侧的表达式取值范围应为[0, 1],由此得出 Amax(Mave(x)) ,一般情况下又有 Amax(maxcr,g,b(Hc(x))) 。这样就初步确定了全局大气光的范围,为了能够快速获取全局大气光,文章直接取两者的平均值作为全局大气光
A=12(max(H(x))+max(Mave(x)))(9)

然后根据雾天退化模型恢复出无雾图像。

因本人水平有限,如有错误,还请批评指正。

附上代码下载地址:
源码下载地址

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值