图像增强方面我共研究了Retinex、暗通道去雾、ACE等算法。其实,它们都是共通的。甚至可以说,Retinex和暗通道去雾就是同一个算法的两个不同视角,而ACE算法又是将Retinex和灰度世界等白平衡理论相结合的产物。下面将依次讨论,每个算法写一个心得,欢迎拍砖。

今天先写Retinex。Retinex理论认为,人眼观测到的图像S是光照图像L和物体反射图像R的乘积。而R才是真实的恒常性的图像,但是怎么从观测图像S中计算R呢?这是个病态问题,根本不可解。研究者就通过加以一定的约束条件,比如光照L具有缓变平滑性、L与S有一定的弱相关性等等,然后估计出光照图像L,进而得到R。

从S中如何估计L,就衍生出了各种各样的实现方式,影响较大的有:中心环绕、随机路径、变分、金字塔迭代等等方法。其中,中心环绕算法无疑是影响最大的retinex实现方式,使用高斯尺度算子来估计光照图像,计算速度快。当然,它也有一些缺点:

1) 在强光阴影过渡区容易出现光晕现象;

主要是由于高斯算子不能在过渡区很好的估计光照所致。

2) 对比较亮的图像处理欠佳,比如雾霾图像。

主要原因有二:retinex不是专门的去雾算法;对数化处理压缩了亮区域的显示范围,导致其细节弱化。

由于L和R是乘积的关系,为了便于处理,一般对观测图像S先进行对数处理,这样就转换成了加性关系。使用对数处理可以极大的提升暗区域的像素值,以增加对比度,但代价是压缩了亮区图像的显示范围,导致其细节模糊甚至丢失。所以个人认为,retinex适用于处理那些光照不足黑不拉几的图像,对于比较亮的图像,不妨先进行反色处理再retinex。

3) 色彩保持能力较弱。

因为对rgb三个颜色通道各自归一化处理的缘故,有论文提到了一些改善方法,但我发现还是不容乐观。

此外,三通道各自归一化处理后,其颜色均值是接近于128的,如果后面再跟一个指数化操作(对数处理的反操作),将导致图像颜色明显偏暗,所以这是一般retinex算法只有对数处理没有指数处理的缘故。

所以,我对中心环绕算法做了一点点改进:

主要如下:

1)使用引导滤波来快速估计光照图像,减少光晕的出现,实验表明,该步骤对色彩保持能力也有一定的提升;

2)在使用多个尺度算子进行合成的时候,不是简单的做均值处理;

3)在完成retinex处理之后,再做一次简单的gamma校正,使其均值接近于128。

下面给实验结果图, 可见色彩保持的还不错哦,对雾霾图像也有较好的效果。

软件EXE下载地址:https://pan.baidu.com/s/1dFGBAP7

程序采用python实现,未经性能优化,exe中打包了python及numpy wxpython opencv等重量级模块,故体积较大,如杀毒软件误报为病毒,请信任运行。

retinex图像增强算法的研究的更多相关文章

  1. Retinex图像增强算法

    前一段时间研究了一下图像增强算法,发现Retinex理论在彩色图像增强.图像去雾.彩色图像恢复方面拥有很好的效果,下面介绍一下我对该算法的理解. Retinex理论 Retinex理论始于Land和M ...

  2. 关于Retinex图像增强算法的一些新学习。

    最近再次看了一下IPOL网站,有一篇最近发表的文章,名字就是Multiscale Retinex,感觉自己对这个已经基本了解了,但还是进去看了看,也有一些收获,于是抽空把他们稍微整理了下,原始文章及其 ...

  3. Retinex图像增强算法代码

    http://www.cnblogs.com/sleepwalker/p/3676600.html?utm_source=tuicool http://blog.csdn.net/carson2005 ...

  4. 图像增强算法(直方图均衡化、拉普拉斯、Log、伽马变换)

    一.图像增强算法原理 图像增强算法常见于对图像的亮度.对比度.饱和度.色调等进行调节,增加其清晰度,减少噪点等.图像增强往往经过多个算法的组合,完成上述功能,比如图像去燥等同于低通滤波器,增加清晰度则 ...

  5. KMP算法(研究总结,字符串)

    KMP算法(研究总结,字符串) 前段时间学习KMP算法,感觉有些复杂,不过好歹是弄懂啦,简单地记录一下,方便以后自己回忆. 引入 首先我们来看一个例子,现在有两个字符串A和B,问你在A中是否有B,有几 ...

  6. Dinic算法(研究总结,网络流)

    Dinic算法(研究总结,网络流) 网络流是信息学竞赛中的常见类型,笔者刚学习了最大流Dinic算法,简单记录一下 网络流基本概念 什么是网络流 在一个有向图上选择一个源点,一个汇点,每一条边上都有一 ...

  7. 基于MATLAB的人脸识别算法的研究

    基于MATLAB的人脸识别算法的研究 作者:lee神 现如今机器视觉越来越盛行,从智能交通系统的车辆识别,车牌识别到交通标牌的识别:从智能手机的人脸识别的性别识别:如今无人驾驶汽车更是应用了大量的机器 ...

  8. R-Tree空间索引算法的研究历程和最新进展分析

    转自原文 R-Tree空间索引算法的研究历程和最新进展分析,2008 摘要:本文介绍了空间索引的概念.R-Tree数据结构和R-Tree空间索引的算法描述,并从R-Tree索引技术的优缺点对R-Tre ...

  9. Java实现 蓝桥杯VIP 算法提高 研究兔子的土豪

    试题 算法提高 研究兔子的土豪 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 某天,HWD老师开始研究兔子,因为他是个土豪 ,所以他居然一下子买了一个可以容纳10^18代兔子的巨大 ...

随机推荐

  1. 国网SGCC_UAP 反编译.class文件源代码

    SGCC_UAP和eclipse操作方式差不多,对于用惯了IDEA和Android Studio的人来说非常不方便,按住Ctrl点击类名不能查看源码. 因为jar包下都是.class文件,所以需要安装 ...

  2. Java并发编程(十四)Java内存模型

    1.共享内存和消息传递 线程之间的通信机制有两种:共享内存和消息传递:在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信.在消息传递的并发模型里,线程 ...

  3. Spark线性回归实现优化

    import org.apache.log4j.{Level, Logger} import org.apache.spark.ml.feature.VectorAssembler import or ...

  4. 安装SQL 2005 出现警告 ,32位ASP.NET已经注册,需要注册64位

    将64位.net注册到iis上 cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 ...

  5. ffmpeg文件切片

    先用ffmpeg把abc.mp4文件转换为abc.ts文件: ffmpeg -y -i abc.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb ...

  6. HCNA网络技术命令

    1.display version 显示系统软件版本及硬件信息 2.system-view 切换到系统视图 3.quit 切换回用户视图 4.return 从任意非用户视图退回到用户视图 5.sysn ...

  7. 【PAT】B1072 开学寄语(20 分)

    代码注释应该很清晰 先存下违禁品,放到数组中,未使用map #include<cstdio> #include<string.h> int wupin[10],N,M; boo ...

  8. 11LaTeX学习系列之---LaTeX的特殊字符

    目录 目录 前言 (一)源代码 (二)输出效果 目录 本系列是有关LaTeX的学习系列,共计19篇,本章节是第11篇. 前一篇:10LaTeX学习系列之---Latex的文档结构 后一篇:12LaTe ...

  9. Linux 小知识翻译 - 目录 (完结)

    偶尔在网上看到的这篇文章,总结了linux中一些天天在说的概念.可能是因为天天说的关系, 一直以为自己知道这些概念.其实对有些概念也只是似是而非的了解而已. 为此,决定将所有的小知识点全翻译下来,给自 ...

  10. markdownpad破解

    下载在腾讯软件下载比较快. 破解我就不写步骤了,直接给个链接 https://blog.csdn.net/geekqian/article/details/74455409 授权邮箱:Soar360@ ...