retinex图像增强算法的研究
图像增强方面我共研究了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图像增强算法的研究的更多相关文章
- Retinex图像增强算法
前一段时间研究了一下图像增强算法,发现Retinex理论在彩色图像增强.图像去雾.彩色图像恢复方面拥有很好的效果,下面介绍一下我对该算法的理解. Retinex理论 Retinex理论始于Land和M ...
- 关于Retinex图像增强算法的一些新学习。
最近再次看了一下IPOL网站,有一篇最近发表的文章,名字就是Multiscale Retinex,感觉自己对这个已经基本了解了,但还是进去看了看,也有一些收获,于是抽空把他们稍微整理了下,原始文章及其 ...
- Retinex图像增强算法代码
http://www.cnblogs.com/sleepwalker/p/3676600.html?utm_source=tuicool http://blog.csdn.net/carson2005 ...
- 图像增强算法(直方图均衡化、拉普拉斯、Log、伽马变换)
一.图像增强算法原理 图像增强算法常见于对图像的亮度.对比度.饱和度.色调等进行调节,增加其清晰度,减少噪点等.图像增强往往经过多个算法的组合,完成上述功能,比如图像去燥等同于低通滤波器,增加清晰度则 ...
- KMP算法(研究总结,字符串)
KMP算法(研究总结,字符串) 前段时间学习KMP算法,感觉有些复杂,不过好歹是弄懂啦,简单地记录一下,方便以后自己回忆. 引入 首先我们来看一个例子,现在有两个字符串A和B,问你在A中是否有B,有几 ...
- Dinic算法(研究总结,网络流)
Dinic算法(研究总结,网络流) 网络流是信息学竞赛中的常见类型,笔者刚学习了最大流Dinic算法,简单记录一下 网络流基本概念 什么是网络流 在一个有向图上选择一个源点,一个汇点,每一条边上都有一 ...
- 基于MATLAB的人脸识别算法的研究
基于MATLAB的人脸识别算法的研究 作者:lee神 现如今机器视觉越来越盛行,从智能交通系统的车辆识别,车牌识别到交通标牌的识别:从智能手机的人脸识别的性别识别:如今无人驾驶汽车更是应用了大量的机器 ...
- R-Tree空间索引算法的研究历程和最新进展分析
转自原文 R-Tree空间索引算法的研究历程和最新进展分析,2008 摘要:本文介绍了空间索引的概念.R-Tree数据结构和R-Tree空间索引的算法描述,并从R-Tree索引技术的优缺点对R-Tre ...
- Java实现 蓝桥杯VIP 算法提高 研究兔子的土豪
试题 算法提高 研究兔子的土豪 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 某天,HWD老师开始研究兔子,因为他是个土豪 ,所以他居然一下子买了一个可以容纳10^18代兔子的巨大 ...
随机推荐
- 国网SGCC_UAP 反编译.class文件源代码
SGCC_UAP和eclipse操作方式差不多,对于用惯了IDEA和Android Studio的人来说非常不方便,按住Ctrl点击类名不能查看源码. 因为jar包下都是.class文件,所以需要安装 ...
- Java并发编程(十四)Java内存模型
1.共享内存和消息传递 线程之间的通信机制有两种:共享内存和消息传递:在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信.在消息传递的并发模型里,线程 ...
- Spark线性回归实现优化
import org.apache.log4j.{Level, Logger} import org.apache.spark.ml.feature.VectorAssembler import or ...
- 安装SQL 2005 出现警告 ,32位ASP.NET已经注册,需要注册64位
将64位.net注册到iis上 cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 ...
- ffmpeg文件切片
先用ffmpeg把abc.mp4文件转换为abc.ts文件: ffmpeg -y -i abc.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb ...
- HCNA网络技术命令
1.display version 显示系统软件版本及硬件信息 2.system-view 切换到系统视图 3.quit 切换回用户视图 4.return 从任意非用户视图退回到用户视图 5.sysn ...
- 【PAT】B1072 开学寄语(20 分)
代码注释应该很清晰 先存下违禁品,放到数组中,未使用map #include<cstdio> #include<string.h> int wupin[10],N,M; boo ...
- 11LaTeX学习系列之---LaTeX的特殊字符
目录 目录 前言 (一)源代码 (二)输出效果 目录 本系列是有关LaTeX的学习系列,共计19篇,本章节是第11篇. 前一篇:10LaTeX学习系列之---Latex的文档结构 后一篇:12LaTe ...
- Linux 小知识翻译 - 目录 (完结)
偶尔在网上看到的这篇文章,总结了linux中一些天天在说的概念.可能是因为天天说的关系, 一直以为自己知道这些概念.其实对有些概念也只是似是而非的了解而已. 为此,决定将所有的小知识点全翻译下来,给自 ...
- markdownpad破解
下载在腾讯软件下载比较快. 破解我就不写步骤了,直接给个链接 https://blog.csdn.net/geekqian/article/details/74455409 授权邮箱:Soar360@ ...