Retinex 理论

Retinex 这个词由 Retina 和 Cortex 两个单词组成。在 Retinex 理论中,物体的颜色是由物体对长波、中波和短波光线的反射能力决定的,而不是由反射光强度的绝对值决定的,并且物体的色彩不受光照非均性的影响,具有一致性。

在 Retinex 理论中,人眼得到的图像数据取决于入射光和物体表面对入射光的反射。如上图所示,I(x,y) 是我们最终得到的图像数据,先是由入射光照射,然后经由物体反射进入成像系统,最终形成我们所看到的图像。该过程可以用公式表示:

其中,I(x,y)代表被观察或照相机接收到的图像信号;L(x,y) 代表环境光的照射分量 ;R(x,y) 表示携带图像细节信息的目标物体的反射分量。

将该式子两边取对数,可以得到物体原本的信息:

在图像处理领域,常将该理论用于图像增强,为了得到成像更好的图片。这时,R(x,y) 表示为图像增强得到后的图像,I(x,y) 为原始的图像。在处理过程中 L(x,y) 常为 I(x,y) 高通滤波之后的结果,也可以用其他滤波的方法,比如中值滤波,均值滤波等等。

SSR 算法

SSR (Singal Scale Retinex),即单尺度视网膜算法是 Retinex 算法中最基础的一个算法。运用的就是上面的方法,具体步骤如下:

  • 输入原始图像 I(x,y) 和滤波的半径范围 sigma;
  • 计算原始图像 I(x,y) 高斯滤波后的结果,得到 L(x,y);
  • 按照公式计算,得到 Log[R(x,y)];
  • 将得到的结果量化为 [0, 255] 范围的像素值,然后输出结果图像。

需要注意的是,最后一步量化的过程中,并不是将 Log[R(x,y)] 进行 Exp 化得-到 R(x,y) 的结果,而是直接将 Log[R(x,y)] 的结果直接用如下公式进行量化:

将过程整合在一起就是如下过程:

MSR 算法

MSR (Multi-Scale Retinex),即多尺度视网膜算法是在 SSR 算法的基础上提出的,采用多个不同的 sigma 值,然后将最后得到的不同结果进行加权取值,公式如下所示:

其中 n 是尺度的数量, σ= {σ1,σ2,…,σn} 是高斯模糊系数的向量, wk 是与第 k 个尺度相关的权重,其中 w1 + w2 + … + wn = 1 。

MSRCR 算法

MSRCR 算法是一种改进 MSR 的算法,全称是 Multi-Scale Retinex with Color Restoration,即带色彩恢复的多尺度视网膜增强算法。

就是在 MSR 的基础上,加上了色彩恢复的功能。详细的内容及公式可以查看论文 《A multiscale retinex for bridging the gap between color images and the human observation of scenes》。

作业要求

任务 1

在论文中随机选择两个 MSR 算法,实现并比较。

任务 2

结果比较

一些标注
在比较结果之前,先对一些标注信息进行说明,这样会有助于后续的结果对比。

SSR : Single Scale Retinex
SSR - DIV : Single Scale Retin e t ( Z = X/Y )
SSR - LOG : Single Scale Retinex (logZ = logX – logY)
MSR : Multi - Scale Retinex
MSRCR : Multi - Scale Retinex with Color Restoration

实验结果


不同 sigma 取值的对比
在 SSR 图像组、SSR- DIV 图像组和 SSR- LOG 图像组中,我们可以看到当 sigma 值不大的时候(16-128),增强后的图像亮度比原图像要暗。而且图像的亮度随着 sigma 值的增加而增加。当 sigma=256 时,图像的亮度将与原始图像相似。

不同 SSR 算法对比
通过比较不同的 SSR 方法,可以发现当 sigma 值在 16-128 之间时,SSR-DIV 的结果亮度最暗,而 SSR-LOG 的结果稍暗,但结果比 SSR 的结果更蓝。对于 SSR 和 SSR-LOG 算法,sigma 选择 64 或 128 是当前实验图片的最佳结果。对于 SSR-DIV 的结果,选择 256 是最佳选择。

不同 MSR 算法对比
通过对 MSR 算法和 SSR 算法的比较,可以发现,MSR 和 MSRCR 算法的结果一般要比 SSR 算法的结果更亮,因为多重尺度(多个 sigma 的取值)的组合。对两种 MSR 算法的结果进行比较,可以发现,结果没有太大的差别。而且在这些组合中,64-128-256 的组合结果是最优的。不仅图像变得更清晰,而且颜色也变得更加明亮。此外,对于 MSRCR 算法来说,太多的参数是一个负担(实验中只采用了论文推荐的经验参数,而没有尝试更多的参数比较)。

基于 Retinex 的几种图像增强算法总结相关推荐

  1. 转载:基于MATLAB的几种图像分割算法

    基于MATLAB的几种图像分割算法 转载自:https://blog.csdn.net/bentleydelll/article/details/82456150 最大类间方差法 基本思路是根据直方图 ...

  2. 基于FPGA的几种排序算法总结

    目录 1      冒泡法和比较排序法 1.1        算法原理 1.2        仿真结果 1.3        算法优缺点 2      并行全比较排序法 2.1        算法原理 ...

  3. FPGA篇(三)基于FPGA的几种排序算法

    目录 1      冒泡法和比较排序法 1.1        算法原理 1.2        仿真结果 1.3        算法优缺点 2      并行全比较排序法 2.1        算法原理 ...

  4. 基于FPGA的改进实时图像增强算法的设计与实现

    当今社会,监控技术应用十分广泛.但是很多监控设备大都处于户外工作环境.而外界环境的多变性增加了监控的难度,典型的情况就是天气因素,比如大雾,阴天等等,这些因素会增加监控的难度,甚至使系统无法正常工作. ...

  5. 基于MATLAB的几种图像分割算法

    最大类间方差法:基本思路是根据直方图以某一会灰度为阈值将图像分割成两部分,计算两组的方差,当被分成的两组之间的方差最大时,这个灰度为阈值灰度值 img = imread('C:\Users\dell\ ...

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

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

  7. matlab ahe,基于直方图的图像增强算法(HE、CLAHE、Retinex)之(二)

    作为图像增强算法系列的第二篇文章,下面我们将要介绍功能强大.用途广泛.影响深远的对比度有限的自适应直方图均衡(CLAHE,Contrast Limited Adaptive Histogram Equ ...

  8. matlab Retinex图像增强算法

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

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

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

  10. 基于直方图的图像增强算法(HE、CLAHE)之(二)

    作为图像增强算法系列的第二篇文章,下面我们将要介绍功能强大.用途广泛.影响深远的对比度有限的自适应直方图均衡(CLAHE,Contrast Limited Adaptive Histogram Equ ...

最新文章

  1. clickhouse 基础知识
  2. python神奇时钟项目_Python Tkinter 数字时钟小项目
  3. react 不能往组件中传入属性的值为 undefined
  4. 下一代Hotmail和MSN Messenger最新界面截图
  5. 【dfs】病毒(jzoj 1284)
  6. 计算机接口控制采集时序图,自动站实时数据质量控制
  7. HDFS详解(架构设计、副本放置策略、读写流程、进程、常用命令等)
  8. python生成器迭代器_python 生成器 迭代器
  9. readyread信号不触发_什么是示波器的触发,意外发现!
  10. GBDT(Gradient Boosting Decision Tree) 没有实现只有原理
  11. 在endnote中制作GB/T7714《文后参考文献著录规则》的输出格式 及 编辑Output Styles中特殊符号说明
  12. 5000系列组装拆卸单成本
  13. A problem has been detected and windows has been shut down to prevent damage to your computer.
  14. h5页面唤起打电话、发短信功能
  15. 双系统安装deepin20_win10deepin15.10双系统安装教程
  16. Linux命令之压缩gzip
  17. [slove]Unable to find required classes (javax.activation.DataHandler and javax.m
  18. 如何在2022年建立自己的NFT市场平台
  19. 文件管理器和FTP客户端:ForkLift for Mac
  20. dul恢复oracle数据,学习笔记:Oracle dul数据挖掘 使用DUL数据恢复软件恢复分区表中...

热门文章

  1. 1.4 单片机开发软件环境搭建
  2. matlab对数画图命令,MATLAB命令画图
  3. matlab画图的参数,matlab画图参数
  4. vue 动态scss变量,包含16进制转rgba,rgba转16进制
  5. CSDN markdown 数学公式指导手册
  6. 2招PDF去密码,秒学秒懂秒用上!
  7. 学习java需要用到哪些软件?
  8. 使用bat一键生成bmfont艺术字
  9. 如何写好PRD文档?
  10. Scratch案例——画长城