c语言暗原色去雾算法,基于暗原色图像去雾算法及实现

本文介绍了基于暗通道的图像去雾算法,包括暗原色先验、透射率求解、图像复原等步骤,并提供了C语言的代码实现。通过算法和代码,读者可以理解去雾过程并应用到实际图像处理中。
摘要由CSDN通过智能技术生成

图像去雾在科研界是一个很有挑战性的话题,通过很多人的不断努力与实践,去雾方法越来越多,当然效果也越来越好,提到去雾算法,就不得不说何凯明博士的基于暗通道的去雾算法。本片文章主要以更加易懂的方式让大家了解基于暗通道去雾算法的原理以及代码实现。

1.首先是去雾算法背景。

在一个场景中,例如一座山,我们将场景分为两种情况,一种情况是现实生活中真实的图像,另一种是我们观察到的场景。由于光线通过媒介透射到我们眼睛中被散射一部分,所以就会不清晰。在有雾的情况下散射的更严重,也就是说在晴天我们看山很清晰,在有雾的情况下看山和模糊。于是有一个方程模型来描述雾图的形成。

ca0becafdf0953e46e0ad38a75f7b1ba.gif

(1)

I是指观察到的图像强度,J是指景物光线的强度,A是指全球大气成分光,t用来描述光线通过媒介透射到照相机过程中没有被散射的部分,去雾的目标就是从I中复原J,A, T。

方程右边的第一项J(x)t(x)叫做直接衰减项,即景物的光线在透射媒介中经过衰减后的部分。第二项A(1-t(x))则是大气光成分,即大气光是有前方散射引起的,会导致景物颜色的偏移。

在(1)式子中由于I(x)已知(需要去雾图片)只需要知道透射率t和大气光成分A,即可求出实际图像J(x),

2.暗原色先验

暗原色先验是作者通过大量图片分析,进行验证出来的,暗原色是图片中原本存在的。作者通过对大量户外无雾的图片观察得出,在绝大多数非天空的局部区域内,某一些像素总会有至少一个颜色通道具有很低的值,也就是说该区域光强度的最小值是很小的,公式描述如下

ca0becafdf0953e46e0ad38a75f7b1ba.gif

(2)

Jc代表J的某一个颜色通道,而欧米卡x是以x为中心的一块方形区域。作者观察得出,除了天空方位,Jdark的强度总是很低并且趋近于0。

3.求透射率

作者假设了大气光因子A是给定的,具体怎么评评估

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值