Python图像处理丨详解图像去雾处理方法( 三 )


文章插图
 
图像对比度增强的算法在很多场合都有用处,特别是在医学图像中,这是因为在众多疾病的诊断中,医学图像的视觉检查时很有必要的 。Retinex算法是代表性的图像增强算法,它根据人的视网膜和大脑皮层模拟对物体颜色的波长光线反射能力而形成,对复杂环境下的一维条码具有一定范围内的动态压缩,对图像边缘有着一定自适应的增强 。
自动色彩均衡(Automatic Color Enhancement,ACE) 算法是Rizzi大神在Retinex算法的理论上提出的,它通过计算图像目标像素点和周围像素点的明暗程度及其关系来对最终的像素值进行校正,实现图像的对比度调整,产生类似人体视网膜的色彩恒常性和亮度恒常性的均衡,具有很好的图像增强效果 。
ACE算法包括两个步骤:
 

  • 一是对图像进行色彩和空域调整,完成图像的色差校正,得到空域重构图像 。
    模仿视觉系统的侧抑制性和区域自适应性,进行色彩的空域调整 。侧抑制性是一个生理学概念,指在某个神经元受到刺激而产生兴奋时,再刺激相近的神经元,后者所发生的兴奋对前者产生的抑制作用 。
  • 二是对校正后的图像进行动态扩展 。
    对图像的动态范围进行全局调整,并使图像满足灰度世界理论和白斑点假设 。算法针对单通道,再延伸应用到RGB彩色空间的3通道图像,即对3个通道分别处理再进行整合完成 。
 
(1) 区域自适应滤波
输入图像I(灰度图为例),该步是对单通道图像I中所有点p的区域自适应滤波,得到完成色差校正,空域重构后的中间结果图像,计算公式如下:
Python图像处理丨详解图像去雾处理方法

文章插图
 
【Python图像处理丨详解图像去雾处理方法】式中:Ic§-Ic(j)为p、j两个像素点间灰度差值,表达拟生物学上的侧抑制性;d(p,j)表示距离度量函数,使用两点间的欧氏距离,作用上控制点j对p的影响权重,映射出滤波的区域适应性;Sa(x)是亮度表现函数(奇函数),本文算法选择经典Saturation函数 。
Python图像处理丨详解图像去雾处理方法

文章插图
 
不同亮度函数和参数的选择控制了对比度增强的程度,经典的Saturation函数在饱和前取越大的斜率,结果的对比度增强越明显,如图2所示,极限情况是sign函数形式,而Sign函数由于无差别过度增强放大,导致噪声同样得到放大效果不佳,最终选择Saturation函数作为相对亮度表现函数 。公式如下:
Python图像处理丨详解图像去雾处理方法

文章插图
 
(2) 色调重整拉伸,对图像动态扩展
将式(1)中得到的中间量拉伸映射到 [0, 255] 中,占满动态范围 [0, 255](8位灰度图像),计算公式如下,式中:[minR,maxR]是中间量L(x)的全部定义域,该项使图像达到全局白平衡 。
Python图像处理丨详解图像去雾处理方法

文章插图
 
下图是条形码图像进行ACE图像增强后的效果图,通过图像增强后的图(b)对比度更强,改善了原图像的明暗程度,增强的同时保持了图像的真实性 。
Python图像处理丨详解图像去雾处理方法

文章插图
 
ACE算法英文介绍如下:
Python图像处理丨详解图像去雾处理方法

文章插图
 
实验对比效果如下图所示,大家在写该主题论文的时候,注意和传统方法对比 。
Python图像处理丨详解图像去雾处理方法

文章插图
 
Python图像处理丨详解图像去雾处理方法


推荐阅读