
r=imRGB(:,:,1)
g=imRGB(:,:,2)
b=imRGB(:,:,3) 分别提取三色的灰度图
[m n] = size(r) 提取唤皮单色图矩阵的宽茄者度和长度
a = zeros(m,n) 创建m*n的零矩阵颤链薯a
for i = 1: m
for j = 1: n
a(i,j) = min(r(i,j), g(i,j))
a(i,j)= min(a(i,j), b(i,j)) 依次比较三色分量的最小值提取为暗通道图
end
end
d = ones(15,15) 创建15*15的单位矩阵
fun = @(block_struct)min(min(block_struct.data))*d
dark = blockproc(a, [15 15], fun) 将图片分成15*15的小块并将每一块变成其中的最小值
dark = dark(1:m, 1:n)
我也是新手啊兄弟只能帮你到这儿了
姓名:张昊楠
学号:21021210691
学院:电子工程学院
【嵌牛导读】简要介绍暗通道先验理论基础
【嵌牛鼻子】图像处理 图像去雾
【嵌牛正文】:
暗通道先验理论是何凯明基于对大量户外无雾图像的观察所得到的统计规律:在大多数不包含天空区域的图像中,存在一些像素点,这些像素点中至少有一个通道的值有非常低的值。如果将无雾图像用J表示,那么图像的暗通道可以表示为:
式中Ω(x)表示以像素点x为中心的方形窗口。暗通道图像即为对原图作最小值滤波。
根据暗通道先验理论,在没有雾的户外图像中,除天空区域外,其暗通道趋向于零,即:
造成暗通道图像亮度低的原因一般包括图像中的阴影区域,颜色鲜艳的物体以及本身就比较暗的物体。
一般来说,一张含雾霾的图片往往比没有雾霾的图片更亮。在雾霾越厚的地方,其暗通道像素值越高。根据暗通道先验理论,我们可以认为,含雾图片中暗通道的亮度大致接近雾霾的厚度。
图1是一幅无雾图和它的暗通道图像,图2是一幅有雾图和它的暗通道图像。通过对比可以发现,图1的暗通道图几乎全部是黑色,图2的有雾图像白色区域明显较多,且原图中雾越浓,暗通道图像对应的区域越亮。雾天图像的暗通道图像亮度值可以很好地反映雾的浓度。根据这一点,我们可以通过暗通道图像来估计雾的浓度。
下面介绍如何利用暗通道先验理论对图像进行去雾:
在一些关于图像去雾的方法中,一般将图像中像素的最大值作为大气光的估计值。但在实际的图片中,最亮的像素点可能是白色的背景墙或者白色的汽车。所以利用原图碰慎最亮的像素点作为大气光的强度有时会产生较大误差。
如第1节介绍的那样,雾霾图像暗通道亮度近似等同于雾霾厚度,所以可以利用图像的暗通道的亮度来更准确估计整体大气光。整体大气光的估计方法如下:
首先取暗通道图像笑梁敬中千分之一个最亮的像素点;然后找到这些像素点对应在原彩色图像中的位置;最后,在原彩色图像中的这些位置里面找到亮度最大的点,作为大气光强的估计值。实际 *** 作中,这种方法比“最亮像素法”更具有更高的稳定性。
对大气散射模型变形,有
假设在区域 中,透射率t(x)是一个常数,记为 。对上式两端作两次最小值滤波,第一次对等式两端R,G,B三个通道取最小值,第二次滤波对以目标像素点为中心的方形区域内取最小值作为该像素点的值,公式表示如下所示:
根据暗通道先验理论渣链:
将2-3式代入2-2式,可以求得透射率
实际生活中,即使是在晴朗的天气下也会不可避免地在空气中存在一些杂质分子。而且,雾的存在可以帮助我们更好获取景深信息,这种现象就是我们所说的空间透视。如果将雾完全除掉的话,景深信息也会丢失,这样一来,复原出的图像会显得不自然。所以在实际 *** 作时,我们会选择保留一部分覆盖远景的雾。为此,引入参数,对2-4式作出调整,得到修正后透射率的表达式:
w越大,表示去雾效果越好。当w=0时,透射率恒为1,复原结果图即为原图;当w=1时,表示雾霾全部去除。这里,为保留一定的景深信息,令w=0.95。
根据上述方法,我们已经求出了大气光强和透射率信息,对大气散射模型作恒等变形,利用(2-6)式在图像的R,G,B三个通道分别进行计算即可得到复原后的无雾图像。
透射率t(x)是一个介于0和1之间的值,当t(x)的某个值为0时,根据上述公式,所得到的图像对应点的像素值则趋向于无穷大,这是我们不希望看到的。所以,为了避免这种情况的发生,我们引入限制透射率阈值的参数 ,以此来控制透射率的下限,则修正后的表达式为:
复原效果图:
从图中可以看出,虽然利用上述方法实现了去雾的效果,但效果并不理想。在天安门与天空连接的边缘部分,会有明显的带状区域产生,这种现象我们称之为光晕效应。经过对比发现,滤波窗口的半径越大,光晕效应越明显。这是因为,我们最初的假设是透射率 在以某一像素点为中心的 为半径的区域内是常数,这种假设在图像的平滑区域是成立的,但在景深突变的边缘处,这种假设并不成立。在边缘部分的透射率信息和实际有一定的误差,我们称这个透射率是粗糙的。因此,为取得更加理想的去雾效果,需要进一步对计算出的透射率 进行细化处理。
在后续的文章中,我们将会介绍一些方法对透射率进行细化,用以抑制光晕效果的产生。
K. He, J. Sun and X. Tang, "Guided Image Filtering,"in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 35, no.6, pp. 1397-1409, June 2013, doi: 10.1109/TPAMI.2012.213.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)