Retinex理论,单尺度Retinex、多尺度Retinex(MSR)、带颜色恢复的多尺度 Retinex(MSRCR)原理

article/2025/11/7 18:28:47

1、Retinex理论

Retinex 是两个单词合成的,它们分别是 retina (视网膜)和 cortex (皮层),因此 Retinex 理论很多时候也被称为是视网膜皮层理论。

最初的基于 Retinex 理论的模型提出了一个人眼视觉系统 (HVS, Human Visual System) 解 释了人眼为什么对于光线波长和亮度互不对应。在这个理论中,物体能够被观察到的颜色信 息是由两个因素决定的:物体本身的反射性质和物体周围的光照强度,但根据颜色恒常性的 理论,物体有自身的固有属性,这个不会受到光照影响,一个物体对于不同光波的反射能力 才能够决定物体的颜色。Retinex 理论的基本思想就是光照强度决定了原始图像中所有像素点 的动态范围大小,而原始图像的固有属性则是由物体自身的反射系数决定,即假设反射图像 和光照图像相乘为原始图像。所以 Retinex 的思路即是去除光照的影响,保留住物体的固有属性。

Retinex 模型示意图

如图 所示,假设观察者处成像的图像为?(?, ?),则表达式为:

其中,?(?, ?)表示周围光照强度信息的光照分量,?(?, ?)表示物体本身固有性质的反射分量。
对公式 (2.14) 两边作对数处理:

作对数处理的两大好处:首先因为人眼对亮度的感知能力不是线性的,它近似于对数曲线,如图 所示,

人眼对亮度的感知能力

其次是复杂的乘除在对数域中是简单的加减法,这些可以大幅度降低算法的复杂度。
Retinex 的基本算法流程图如图 所示:

Retinex 算法基本流程图

2、单尺度Retinex(Single-SR)

单尺度 Retinex 算法的处理过程非常拟合人眼的视觉成像过程,该算法的基本思路是:首 先先构建高斯环绕函数,然后利用高斯环绕函数分别对图像的三个色彩通道 (R 、 G 和 B) 进行 滤波,则滤波后的图像就是我们所估计的光照分量,接着再在对数域中对原始图像和光照分 量进行相减得到反射分量作为输出结果图像。该算法能压缩图像的动态范围、一定程度上的 保持图像的颜色和细节的增强。其具体的表达式如下:

其中,?(?, ?)为原始图像,?(?, ?)为反射分量,?(?, ?)为光照分量,? ? 表示第 i 个色彩通道的 反射图像, * 代表卷积,?(?, ?)为高斯环绕函数,?(?, ?)的构造如下:

其中,?被称为高斯环绕的尺度参数,它是整个算法中的唯一可调节的参数,所以它可以非常 容易影响到图像增强的最终结果。下图 是经过许多调试之后得出的最佳的尺度参数的高斯 环绕函数的模型和实验结果图。在实验过程中发现,当?比较小的时候,代表高斯模板尺度小, 此时能够较好的保持边缘的细节信息,动态范围变大,但是色彩无法保持;当?比较大的时候, 色彩恢复很好,但动态范围变小,细节保持差。

SSR 最佳结果图和高斯环绕函数

SSR 算法的基本流程:
(1) 输入原始图像?(?, ?),并分离三个颜色空间分量。
(2) 确定尺度参数?的大小,保证满足条件∬ ?(?, ?)???? = 1的 λ的值。
(3) 根据公式 (2.17) 得到反射图像?(?, ?)。
(4) 将?(?, ?)从对数域转换到实数域得到?(?, ?)。
(5) 对?(?, ?)进行线性拉伸处理,得到最终结果并显示。

3、多尺度 Retinex(MSR)

由于 SSR 单尺度需要在颜色保真度和细节保持度上追去一个完美的平衡,而这个平衡在 应对不同图像的时候一般都有差别,所以针对这个情况, Jobson 和 Rahman 等人再次提出了 多尺度的 Retinex 算法 (MSR) ,即对一幅图像在不同的尺度上利用高斯进行滤波,然后在对 不同尺度上的滤波结果进行平均加权,获得所估计的照度图像。MSR 简单来说就是相当于做 多次的 SSR 。其公式如下:

其中, N 是尺度参数的个数,如果 N 为 1 ,则就是前面介绍的单尺度的 Retinex 算法。通过许 多实验后发现,当 N 取 3 ,即使用三个不同尺度的高斯滤波器对原始图像进行滤波处理时, 效果最好。? ? 是第 k 个尺度在进行加权的时候的权重系数,它需要满足下面的公式:

经过实验发现,当取平均时,能适用于大量的低照度图像,且运算简单。最后,? ? (?, ?) 是在第 k 个尺度上的高斯滤波函数,即:

MSR 不同尺度下的单通道滤波图像及结果图

图显示了一幅彩色图像的一个通道中在不同尺度下的滤波结果图像。

通过实验证明了多尺度的 Retinex 在颜色保持和细节突出等方面比单尺度的 SSR 要好很 多,但是一般情况下尺度选择为 3 ,所以一次 MSR 等同于三次的 SSR ,在时间复杂度上要 超出很多。

4、带颜色恢复的多尺度 Retinex(MSRCR)

前面介绍了单尺度 Retinex 和多尺度 Retinex ,我们都发现它们都是直接在 RGB 颜色空 间中直接进行的像素运算,在前面的颜色空间中介绍过,当使用 RGB 颜色空间时,由于其 自身很强的耦合性,所以无法保证在经过操作后各个通道之间像素点的比值与原始图像的一 致。假设原图像的三个通道的分别为? ? (?, ?)、? ? (?, ?)和? ? (?, ?),当输入图像由 MSR 算法增 强之后三个通道变为了??? ? (?, ?)、??? ? (?, ?)和??? ? (?, ?)。这个比例关系在增强效果十分理想的情况下应该由以下的公式表示:

然而在实际中,这种比例是很难保证的,即在增强之后,比例的数值往往都会发生改 变,着就是色彩失真的原因所在。而前面的算法都未将这点考虑进行,所以很容易就会出现 色彩失真现象。针对这个情况, Jobson 和 Rahman 等人又一次提出了新的算法,即带颜色恢 复的多尺度 Retinex(MSRCR)。该算法可以将 MSR 得到的结果按照一定的比例进行调整 以求恢复原来的比例数值,具体是通过引入了颜色恢复因子 C ,其公式如下:

其中? ? (?, ?)是?(? ∈ {?, ?, ?})颜色通道的颜色恢复因子,?是增益常数,?是一个调节因子, 一般情况下是非线性的。为了能在正常的屏幕中显示图像,需要对对数域中的像素值进行拉 伸处理,最好结合公式 (2.19) 和 (2.23) 可以得到 MSRCR 的数学表达式:

其中,?和?分别是增益和偏移量系数,作用是为了将最后的图像能很好的显示在屏幕中。下列表格为 MSRCR 的一些基本参数。

下图中给出了尺度参数?分别为 30 、 80 、 200 时 MSRCR 的处理效果。

MSRCR 算法增强效果图

http://chatgpt.dhexx.cn/article/2fdxF3VF.shtml

相关文章

图像增强算法Retinex原理与实现详解

文章目录 1. 引言2. Retinex算法原理2.1 单尺度Retinex示例代码 2.2 多尺度Retinex示例代码 2.3 颜色恢复示例代码 2.4 最终图像处理代码示例 3. Retinex算法的Python实现4. 完结 1. 引言 图像增强是图像处理中的重要技术之一,它可以改善图像的亮度、对比度和颜色等…

(学习笔记)图像处理——Retinex增强

文章目录 前言原理发展单尺度算法(SSR)多尺度算法(MSR)带有色彩恢复的多尺度 实现 前言 Retinex算法由Land于1986年在《An alternative technique for the computation of the designator in the retinex theory of color vision…

Retinex 算法

目录 1、Retinex 理论及数学模型 2、Retinex 算法发展历程 2.1 基于迭代的 Retinex 算法 2.1.1 Frankle-McCann Retinex 算法 2.1.2 McCann99 Retinex 算法 2.2 基于中心环绕的 Retinex 算法 2.2.1 SSR算法(单尺度) 2.2.2 MSR算法(多…

分享一个免费巨好用的shell工具

finalshell 是国产的shell工具,免费,不过可以购买vip,vip功能就是机器进程管理,基本用不上,所以我们只用免费版 功能包含,服务器连接,服务器管理,上传文件,文件可视化操…

shell之常用小工具(sort、uniq、tr、cut)

目录 一、sort 排序 1、格式 2、常用选项 3、sort 例子 1、不加任何选项 如:sort /etc/passwd 2、 去重 (sort -u) 3、 指定分隔符(-t),指定排序的列(-k),升序排列…

shell之常用工具的使用

shell入门 文章目录 shell入门一、文本处理工具1. grep工具2. cut工具3. sort工具4.uniq工具5.tee工具6.diff工具7. paste工具8. tr工具二、bash的特性1 、常用的通配符2、bash中的引号(重点) 一、文本处理工具 1. grep工具 grep是行过滤工具&#xff…

shell工具finalShell

qitashell工具的不足 对于运维人员来说, 使用的最常用的远程终端连接工具无非就是crt或者Xshell, 而crt则需要破解才能使用, Xshell虽说可以免费使用, 但经常在启动的时候会要求你购买, 然后一直卡住不让你启动, 既耽…

shell学习☞shell工具

一、shell工具 1、cut[选项参数] filename:从文件的每一行剪切字解、字符和字段并将这些字节、字符和字段输 选项参数: -f:列号,提取第几列 -d:分隔符(默认是制表符),按照指定的分…

惊艳!Linux 中迷人的 Shell 脚本工具

如果您是 Linux 操作系统爱好者或正在将自己定义为一个爱好者,那么与 shell 脚本交叉的路径是完全不可避免的。根据定义,shell 脚本是设计用于在 Unix/Linux shell 环境中执行的程序。 我们可以将命令行解释器 ( shell ) 与诸如打印文本、程序执行和文件…

2.shell工具与脚本

文章目录 一、bash 中的特殊变量二、变量赋值与访问三、其他类型的脚本四、查找文件findlocate 查找内容grep 查找 shell 命令tree broot 五、零碎知识点六、 shell工具 一、bash 中的特殊变量 $0 :脚本名 $1 -$9 :脚本的第1-9个参数 $ :脚本的所有参数 $# :参数个…

Linux---Shell(文本处理工具 和 Shell脚本)

目录 一、文本处理工具 1.1 grep 1.1.1 匹配行首 1.1.2 设置大小写 1.1.3 转义字符 1.2 sed 1.2.1 追加文件 1.2.2 删除文本 1.3 awk 1.3.1 关系表达式 二、Shell脚本 2.1 结构判断 2.2 循环结构 2.3 break 和 continue 2.4 Shell脚本的基本元素与执行方式 一、文…

shell

shell 什么是shell: 现在我们使用的操作系统(Windows、Mac OS、Android、iOS等)都是带图形界面的,简单直观,容易上手,对专业用户(程序员、网管等)和普通用户(家庭主妇、…

shell的几种常用工具

最近在学习shell脚本语言,在学习的过程中了解了关于shell的几种常用工具,就总结了一下。 1、sort 功能:顾名思义,sort是对文本进行排序操作的。原则:sort将文件的每一行作为一个单位,相互比较&#xff0c…

Linux学习 -- Shell的工具

cutsedawksort Shell提供的工具可以帮助我们更快的完成需求操作。 一、cut 功能描述: cut的工作就是"剪",具体是用来在文件中负责剪切数据。cut 命令从文件的每一行剪切字节、字符和字段并将这些文字、字符和字段输出。 基本用法: …

快速入门Shell脚本(5)——Shell的这些工具你都知道了吗?

上一篇博客已经给大家讲了计较复杂的操作(常用的函数操作)。 本篇博客,给讲一下shell的工具,学会写工具会让你的面试加分的偶。(喜欢shell脚本的可以关注专栏) 1.Shell中的cut 1.1介绍 cut的工作就是“剪…

Shell常用命令与工具

学习一些在编写Shell时的常用命令或工具及使用技巧。有人说Shell脚本是命令堆积的一个文件,按顺序去执行。还有人说想学好Shell脚本,要把Linux上各种常见的命令或工具掌握了,这些说法都没错。由于Shell语言本身在语法结构上比较简单&#xff…

SHELL工具推荐

随着个人使用还会继续更新,目前就只有两款。 1.Xshell 业界较常见的一款经典的shell命令行软件,配套有单独的ftp软件。 界面比较简洁,命令好像全是单色。有开源的免费版本可以下载。 2.MobaXterm 界面易读性高很多,对于warning、…

shell脚本之工具

在学习了shell脚本的基本语法,命令,符号之后,接下来要看的就是shell脚本使用的所有工具了。 在shell脚本中,工具的使用简化了所要编写的代码。接下来就介绍几个shell下经常使用的工具。 1、sort sort工具的常用语法就是将文件的每一行作为一个单位,相互比较,比较原则是从…

shell之常用工具(cut、sort、uniq、tr)

文章目录 一、列截取工具-cut1、cut概述2、常用选项3、案例演示 二、排序工具-sort1、sort概述2、常用选项3、案例演示 三、去重工具-uniq1、uniq概述2、uniq的常用选项3、案例演示 四、修改工具-tr1、 tr概述2、tr的常用选项3、案例演示 五、面试题六、总结 一、列截取工具-cu…

JDK配置环境变量+eclipse安装使用(保姆级教程)

一、下载JDK 访问Oracle官网下载最新版JDKJava Downloads | Oracle,也可点击此处下载我准备的安装包。 以Windows系统举例,选择Windows下的第二个(第一个为压缩包,第二个为安装程序,第三个是Windows Installee的数据包…