关于Retinex图像增强算法的一些新学习。
最近再次看了一下IPOL网站,有一篇最近发表的文章,名字就是Multiscale Retinex,感觉自己对这个已经基本了解了,但还是进去看了看,也有一些收获,于是抽空把他们稍微整理了下,原始文章及其配套代码详见:http://www.ipol.im/pub/art/2014/107/。
之前在我的 带色彩恢复的多尺度视网膜增强算法(MSRCR)的原理、实现及应用 一文中已经较为详细的描述了Multiscale Retinex的基本原理和应用,这里就不再做过多的说明。为表述方便,还是贴出其基本的计算原理:
上式中,I为原始输入图像,F是滤波函数,一般为高斯函数,N为尺度的数量,W为每个尺度的权重,一般都为1/N, R表示在对数域的图像的输出。
由于R是对数域的输出,要转换为数字图像,必须将他们量化为[0,255]的数字图像范畴,关于这个量化的算法,有这极为重要的意义,他的好坏直接决定了最终输出的图像的品质。
目前,结合上述文章中提出的一些过程,有4种方式进行处理:
第一种,也是最容易想到的就是,直接线性量化,即采用下式进行处理:
这种方式,由于Retinex数据处理后的高动态特性,数据分布很广,会出现严重的两极化现象,一般难以获得满意的结果。
第二种,就是在经典的MSRCR文章《A Multiscale Retinex for Bridging the Gap Between Color Images and the Human Observation of Scenes》中提出的Canonical Gain/Offset 算法。计算公式如下:
其中G和b为经验参数。
第三种,实在上述文章中提到的Simplest Color Balance(我简写为SCR)方式,这种方式的处理类似于Photoshop中的自动色阶,他把数据按照一定的百分比去除最小和最大的部分,然后中间的部分重新线性量化到0和255之间。
第四种,就是GIMP的Retinex算法,这个可详见 带色彩恢复的多尺度视网膜增强算法(MSRCR)的原理、实现及应用 一文的描述。
还有一种方式,就是大家知道HDR的过程吧,他也是将高动态的数据量化到图像的可视范围,因此可以直接将这类算法应用与这个问题上。我也做了实验,效果似乎一般。
在用第二种或第三种方式处理时,最好还需要有个Color Restoration的过程,因为如果直接对MSR处理的结果进行量化,得到的图像往往整体偏灰度,这是由于原始的彩色值经过log处理后的数据范围就比较小了,这样各通道之间的差异也很小,而之后的线性量化比log曲线要平滑很多,因此整体就丧失了彩色。
论文中提出了修正方式如下:
其中β=46,α=125为经验参数,但是最终我的分析认为β不可能取这么大,取1试验表明效果还不错。
对于一些原始图像HUE较为合理的图,如果用经典的MSRCR算法,会导致处理后的图容易偏色,上述论文提出了对图像的Intensity数据进行Retinex处理,然后再把数据根据原始的RGB的比例映射到每个通道,这样就能在保留原始颜色分布的基础上增强图像,文章中称其为MSRCP。
这个算法的编码论文的附带代码里已经有了很好的例子了,其实真是很简单的工作,需要的朋友自己去参考。
我自己做了5种算法的比较,分别是:
MSRCRGIMP - Gimp内嵌的Retinex增强算法
MSRCRStandard - 按照《A Multiscale Retinex .... the Human Observation of Scenes》一文写的算法,其中G=30,B=-6,β=1,α=125
MSRCRSCR - 使用Color Restoration + Simplest Color Balance算法量化得到的结果
MSRCPSCR - 使用Intensity数据 + Simplest Color Balance算法量化得到的结果
MSRHSV - 对HSV空间的V分量进行(用的SCR量化)Retinex处理并返回RGB空间后的结果
他们的效果比较如下:
original MSRCRGIMP MSRCRStandard
MSRCRSCR MSRCPSCR MSRHSV
original MSRCRGIMP MSRCRStandard
MSRCRSCR MSRCPSCR MSRHSV
original MSRCRGIMP MSRCRStandard
MSRCRSCR MSRCPSCR MSRHSV
孰好孰坏给位自己去斟酌吧。
算法效果测试:http://files.cnblogs.com/Imageshop/Retinex%E7%BB%BC%E5%90%88.rar
很久没有写博客了,其实也没有江郎才尽的感觉,就是呢没有想写的冲动。现在写也无以前那么认真了,感觉就是像计流水账一样。算了,记账就记账吧。
****************************作者: laviewpbt 时间: 2014.6.26 联系QQ: 1664462947 转载请保留本行信息********************
转载于:https://www.cnblogs.com/Imageshop/p/3810402.html
关于Retinex图像增强算法的一些新学习。相关推荐
- 关于Retinex图像增强算法的一些新学习
关于Retinex图像增强算法的一些新学习. - Imageshop 时间 2014-06-26 16:50:00 博客园精华区 原文 http://www.cnblogs.com/Imagesh ...
- Retinex图像增强算法——SSR,MSR,MSRCR,MSRCP,autoMSRCR
系列文章目录 关于OpenCV的一些图像处理函数 图象基本操作(读取.显示.通道提取.边界填充.融合.保存) Retinex图像增强算法--SSR,MSR,MSRCR,MSRCP,autoMSRCR ...
- 图像去雾(二)Retinex图像增强算法
前一段时间研究了一下图像增强算法,发现Retinex理论在彩色图像增强.图像去雾.彩色图像恢复方面拥有很好的效果,下面介绍一下我对该算法的理解. Retinex理论 Retinex理论始于Land和M ...
- Retinex图像增强算法(针对彩色图像)
前一段时间研究了一下图像增强算法,发现Retinex理论在彩色图像增强.图像去雾.彩色图像恢复方面拥有很好的效果,下面介绍一下我对该算法的理解. Retinex理论 Retinex理论始于Land和M ...
- matlab Retinex图像增强算法
Retinex理论在彩色图像增强.图像去雾.彩色图像恢复方面拥有很好的效果,下面介绍一下我对该算法的理解. Retinex理论 Retinex理论始于Land和McCann于20世纪60年代作出的一系 ...
- COI实验室技能:常见的图像增强算法(含MATLAB代码)
COI实验室技能:常见的图像增强算法(含MATLAB代码) 成像系统采集到的图片有时不一定具有很好的图像质量,往往需要进行一些图像增强的操作.本文主要整理了几种常见的图像增强算法,包括:同态滤波. ...
- 荔枝hsv空间图像分割程序matlab,基于Retinex图像增强的不同光照条件下的成熟荔枝识别_熊俊涛...
第29卷第12期农业工程学报V ol.29 No.12 170 2013年6月Transactions of the Chinese Society of Agricultural Engineeri ...
- retinex 的水下图像增强算法_图像增强论文:腾讯优图CVPR2019
Underexposed Photo Enhancement using Deep Illumination Estimation 基于深度学习优化光照的暗光下的图像增强 论文地址:Underexpo ...
- 基于retinex理论改进的低照度图像增强算法
写本文的目的是记录自己学习过或做过的一些东西,深化理解,理清思路,便于回忆.本人处于学习阶段,欢迎指出不对的地方. 本文算法参考文献:李勇.基于Retinex理论的低照度图像增强算法研究与实现[D]. ...
最新文章
- HarmonyOS UI开发 StackLayout(堆栈布局) 的使用
- php python插件,Python:开发Sublime插件,方便PHP开发
- 【slighttpd】基于lighttpd架构的Server项目实战(5)—TCP的TIME_WAIT状态
- github 公钥 私钥_ubuntu git生成ssh key (公钥私钥)配置github或者码云
- NLP--Word2Vec详解
- java实现数据的Excel导出(合并单元格、样式等)
- Windows8中pid为4的system进程占用80端口的解决办法
- bay——RAC_ASM ORA-15001 diskgroup DATA does not exist or is not mounted.docx
- 如何优化你的ERP库存管理系统
- python12306买票_Python 使用 selenium 实现半自动购买12306火车票
- WRF运行wrf.exe出现forrtl: severe (174): SIGSEGV, segmentation fault occurred问题原因与解决合集
- itext生成pdf加页码和总页码
- iOS 苹果官方Demo
- 计算机怎么让隐藏的文件夹不能搜索,电脑怎么巧妙隐藏文件夹让人找不到?隐藏电脑文件方法教程...
- 1.31亿月活的爆款游戏,它的后端架构是怎样的?
- 使用esm数据迁移报错“reason“:“Action/metadata line [1] contains an unknown parameter [_routing]
- 会当凌绝顶-----盘赔之我见(四)
- 高德地图轨迹展示样式修改
- linux 创建普通用户
- 2022年P气瓶充装考试题模拟考试题库及模拟考试
热门文章
- TCP 的有限状态机
- unity中如何解决镜头穿透模型?
- WPF之无法触发KeyDown或者KeyUp键盘事件
- VMware workstation 8.0上安装VMware ESXI5.0
- 《C和指针》读书笔记
- cmd使用另一个Oracle的sid,(转发备用)Oracle SID在本机上已经存在,请指定一个不同的SID”的解决办法...
- 根文件系统构建(Yocto方式)
- linux文件编程(1)—— open、write、read、lseek、阻塞问题
- 全国计算机等级考试题库二级C操作题100套(第72套)
- 使用mysql事件_MySQL事件的使用详解