最近再次看了一下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图像增强算法的一些新学习。相关推荐

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

    关于Retinex图像增强算法的一些新学习. - Imageshop 时间 2014-06-26 16:50:00  博客园精华区 原文  http://www.cnblogs.com/Imagesh ...

  2. Retinex图像增强算法——SSR,MSR,MSRCR,MSRCP,autoMSRCR

    系列文章目录 关于OpenCV的一些图像处理函数 图象基本操作(读取.显示.通道提取.边界填充.融合.保存) Retinex图像增强算法--SSR,MSR,MSRCR,MSRCP,autoMSRCR ...

  3. 图像去雾(二)Retinex图像增强算法

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

  4. Retinex图像增强算法(针对彩色图像)

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

  5. matlab Retinex图像增强算法

    Retinex理论在彩色图像增强.图像去雾.彩色图像恢复方面拥有很好的效果,下面介绍一下我对该算法的理解. Retinex理论 Retinex理论始于Land和McCann于20世纪60年代作出的一系 ...

  6. COI实验室技能:常见的图像增强算法(含MATLAB代码)

    COI实验室技能:常见的图像增强算法(含MATLAB代码)   成像系统采集到的图片有时不一定具有很好的图像质量,往往需要进行一些图像增强的操作.本文主要整理了几种常见的图像增强算法,包括:同态滤波. ...

  7. 荔枝hsv空间图像分割程序matlab,基于Retinex图像增强的不同光照条件下的成熟荔枝识别_熊俊涛...

    第29卷第12期农业工程学报V ol.29 No.12 170 2013年6月Transactions of the Chinese Society of Agricultural Engineeri ...

  8. retinex 的水下图像增强算法_图像增强论文:腾讯优图CVPR2019

    Underexposed Photo Enhancement using Deep Illumination Estimation 基于深度学习优化光照的暗光下的图像增强 论文地址:Underexpo ...

  9. 基于retinex理论改进的低照度图像增强算法

    写本文的目的是记录自己学习过或做过的一些东西,深化理解,理清思路,便于回忆.本人处于学习阶段,欢迎指出不对的地方. 本文算法参考文献:李勇.基于Retinex理论的低照度图像增强算法研究与实现[D]. ...

最新文章

  1. HarmonyOS UI开发 StackLayout(堆栈布局) 的使用
  2. php python插件,Python:开发Sublime插件,方便PHP开发
  3. 【slighttpd】基于lighttpd架构的Server项目实战(5)—TCP的TIME_WAIT状态
  4. github 公钥 私钥_ubuntu git生成ssh key (公钥私钥)配置github或者码云
  5. NLP--Word2Vec详解
  6. java实现数据的Excel导出(合并单元格、样式等)
  7. Windows8中pid为4的system进程占用80端口的解决办法
  8. bay——RAC_ASM ORA-15001 diskgroup DATA does not exist or is not mounted.docx
  9. 如何优化你的ERP库存管理系统
  10. python12306买票_Python 使用 selenium 实现半自动购买12306火车票
  11. WRF运行wrf.exe出现forrtl: severe (174): SIGSEGV, segmentation fault occurred问题原因与解决合集
  12. itext生成pdf加页码和总页码
  13. iOS 苹果官方Demo
  14. 计算机怎么让隐藏的文件夹不能搜索,电脑怎么巧妙隐藏文件夹让人找不到?隐藏电脑文件方法教程...
  15. 1.31亿月活的爆款游戏,它的后端架构是怎样的?
  16. 使用esm数据迁移报错“reason“:“Action/metadata line [1] contains an unknown parameter [_routing]
  17. 会当凌绝顶-----盘赔之我见(四)
  18. 高德地图轨迹展示样式修改
  19. linux 创建普通用户
  20. 2022年P气瓶充装考试题模拟考试题库及模拟考试

热门文章

  1. TCP 的有限状态机
  2. unity中如何解决镜头穿透模型?
  3. WPF之无法触发KeyDown或者KeyUp键盘事件
  4. VMware workstation 8.0上安装VMware ESXI5.0
  5. 《C和指针》读书笔记
  6. cmd使用另一个Oracle的sid,(转发备用)Oracle SID在本机上已经存在,请指定一个不同的SID”的解决办法...
  7. 根文件系统构建(Yocto方式)
  8. linux文件编程(1)—— open、write、read、lseek、阻塞问题
  9. 全国计算机等级考试题库二级C操作题100套(第72套)
  10. 使用mysql事件_MySQL事件的使用详解