关于《半反去雾算法》一文的四宗罪。
来源:互联网 发布:java培训出来没底气 编辑:程序博客网 时间:2024/06/05 10:02
对于一副RGB图像,其半反图像可以通过以下公式获得:
for each Pixel in Image
do:
NewRed = Max ( Red , 255 - Red ) ;
NewGreen = Max (Green , 255 - Green );
NewBlue = Max (Blue , 255 - Blue);
这样进行操作后,图像的像素值肯定都大于127了,因此有必要重新拉升一下,论文中叫做renormalization操作,这个操作具体人如何论文没提,我们可以认为是自动对比度之类的算法。
对于不会编程的朋友,要想获得这个半反图像,也可以借助PS实现,第一步:调用PS 滤镜-- 风格化-- 曝光过度菜单;第二部: 点调整--反色;第三步:调整--自动对比度。
那么接着指出论文的几大问题:
第一宗罪: 论文的原理首先不太占的住脚。
论文首先也是提出了一种先验,即时通过对 daily light conditions 条件下对多副图像进行统计,获知在有雾图像中,有雾区域的半反图像和原始图像基本没什么变化。这个的主要原因作者说是有雾的区域或者天空其RGB分量各元素的值都比较亮,而无雾的地方符合暗通道原理,即总有一个分量的值比较小。
首先,假如说上述条件成立,那么这篇论文的算法也就只适合于在光照条件比较亮的气候下拍摄的图片的去雾了,这就大大限制其应用范围,而论文没有在任何地方对这一点进行强调,有掩盖的嫌疑。
其次,这个先验是否合理呢,因为是先验,我们当然不要求其100%都正确,有个80%就差不多了,可我对去雾相关论文里的一些常用图片进行测试,很多都无法获得理想的结果。
原图 半反图
第一、第二图结果还算行,我们看第三副图,应该说也是在 daily light conditions 条件下拍摄的吧,看其半反图,按照作者的说法应该基本就是没有雾的区域了,那么后面的所谓的去雾算法就无法进行下去了,而这种结果对于我这里很多有雾图都是存在的。
第二宗罪:大气光A的计算
在求大气光的过程中,作者有这句话:In order to mask the most haze-opaque areas, we perform the same procedure,but with the intensity of the semi-inverse increased by a factor ξ (with a default value of ξ =0.3)。为什么这里要把intensity 的值增加一点,然后何为intensity(要知道这个有N多种定义方法),我实在搞不明白增加这个有何目的。然后真正在求半反图中未被mask的部分搜索最大的intensity值时,也存在诸多疑问,因为最大的intensity值有可能不出现在一处,此时你取和原始图对应的那个地方的intensity 作为最终的A呢,每个地方的可能不同啊,论文未明确指出。
第三宗罪:计算无雾图像时的过程很不清晰
在计算无雾图像时,其主要公式为6和7,对于公式6,我们看到论文中对Ci的取值分别为0.2,0.4,0.6,0.8,1,我认为,这个取值明显不合理,当Ci取值较大时,Ci*A的值也就越大,此时公式获得层图像整体就越来越偏暗,如果求得的大气光A接近白色,那么对层图像进行所谓的半反求取有雾区域就变得毫无意义了。而且对论文的图5中的几个结果,根据我自己的编程结果表明,只可能是在Ci=0,0.1,0.2,0.3附近获得的,这说明作者是对这些系数做有意的隐瞒。
对于公式7,论文根本没讲清楚公式中系数的计算方式,并且这种累加对于重叠的有雾区域很容易理解,而那些在每层都判断为无雾的区域进行叠加的后的效果应该是没有任何变化啊,为什么在论文的图5中,这部分的颜色明显有变化呢。
第四宗罪:计算用时绝对作假
原文对计算用时这样描述的:Our method implemented on CPU (Intel 2 Duo 2.00GHz) processes an 600×800 image in approximately 0.013 seconds being suitable for real-time outdoor applications。 这话绝对造假,我们不说别的,就其中的两个过程就使得整个算法不会有这么快,第一:计算半反图和原图的h的差异的时候,论文中说是在CIE LCH空间的H值进行计算的,诸位可以去看看LCH空间中H分量的计算过程,有很多计算,其中不凡有除或者浮点运算,而这种比较在论文中所描述的算法过程中至少需要6次(一次用于计算大气光A,5次用于计算各层的数据)。第二:算法有5次600*800大小彩色图像的合成过程,而且过程涉及浮点运算(用定点运算优化也会有除法部分的),不谈实际中还含有其他的计算,就这两个过程在这个样档次的CPU上对600*800的图像绝对不是13ms能完成的,这个CPU是双核的,开双线程能达到这个速度,我不相信。
因此,从各方面考虑,我认为这篇论文存在着严重的漏洞和不足,不应该在图像去雾领域推广。
作者知识有限,肯定有分析不正确的地方,望各位博友谅解。
*********************************作者: laviewpbt 时间: 2013.12.15 联系QQ: 33184777 转载请保留本行信息*************************
- 关于《半反去雾算法》一文的四宗罪。
- 关于字符串匹配的算法(一)
- 关于排序算法的理解(一)
- 关于每日一算法
- 关于《算法的乐趣》傅立叶变换一章的补充
- 一到关于数组排序的算法题
- 关于《智能Web算法》一书环境配置的问题
- 关于python数据结构与算法一书译稿的声明
- 关于SPFA算法和一维优化
- 关于迷宫的算法
- 关于算法的思考
- 关于子网掩码的算法
- 关于素数的算法
- 关于算法的介绍
- 关于位的算法
- 关于扑克牌的算法
- 关于算法的学习
- 关于质数的算法
- 对比度保留之彩色图像去色算法---基础算法也可以上档次。
- 24位真彩色图像转换为16位高彩色图像的实现方法及效果改进
- 基于中值滤波或双边滤波方式的图像去雾效果的研讨。
- 自己编码使用去色、曲线、色阶算法实现照片怀旧特效。
- Universal Image Loader 学习笔记-图片显示选项
- 关于《半反去雾算法》一文的四宗罪。
- 机器学习决策树算法解决图像识别
- 一年去雾算法研究的总结。
- 动态规划_0-1背包问题
- 图像抠图算法学习 - Shared Sampling for Real-Time Alpha Matting
- 2016-12-19
- JDE 开发-函数
- 一种具有细节保留功能的磨皮算法。
- 由Photoshop高反差保留算法原理联想到的一些图像增强算法。