图像处理_Retinex图像增强
单尺度SSR
(Single Scale Retinex)
图像
S
(
x
,
y
)
S(x,y)
S(x,y)分解为两个不同的图像:反射图像
R
(
x
,
y
)
R(x,y)
R(x,y),入射图像
L
(
x
,
y
)
L(x,y)
L(x,y)
图像可以看做是入射图像和反射图像构成,入射光照射在反射物体上,通过反射物体的反射,形成反射光进入人眼。最后形成的图像
r
(
x
,
y
)
r(x,y)
r(x,y)可以如下公式表示
r
(
x
,
y
)
=
l
o
g
R
(
x
,
y
)
=
l
o
g
S
(
x
,
y
)
L
(
x
,
y
)
r(x,y)=logR(x,y)=log\frac{S(x,y)}{L(x,y)}
r(x,y)=logR(x,y)=logL(x,y)S(x,y)
R
(
x
,
y
)
R(x, y)
R(x,y)表示了物体的反射性质,即图像内在属性,我们应该最大程度的保留;而
L
(
x
,
y
)
L(x, y)
L(x,y)表示入射光图像,决定了图像像素能达到的动态范围,我们应该尽量去除。
我们把照射图像假设估计为空间平滑图像,原始图像为
S
(
x
,
y
)
S(x, y)
S(x,y),反射图像为
R
(
x
,
y
)
R(x, y)
R(x,y),亮度图像为
L
(
x
,
y
)
L(x, y)
L(x,y),使用公式
r
(
x
,
y
)
=
l
o
g
R
(
x
,
y
)
=
l
o
g
S
(
x
,
y
)
L
(
x
,
y
)
r(x,y)=logR(x,y)=log\frac{S(x,y)}{L(x,y)}
r(x,y)=logR(x,y)=logL(x,y)S(x,y)
或者
r
(
x
,
y
)
=
l
o
g
S
(
x
,
y
)
−
l
o
g
[
F
(
x
,
y
)
⨂
S
(
x
,
y
)
]
r(x,y)=logS(x,y)-log[F(x,y)⨂S(x,y)]
r(x,y)=logS(x,y)−log[F(x,y)⨂S(x,y)]
其中r(x, y)是输出图像,卷积运算,
F
(
x
,
y
)
F(x, y)
F(x,y)是中心环绕函数
F
(
x
,
y
)
=
λ
∗
e
−
x
2
+
y
2
c
2
F(x,y)=\lambda*e^{-\frac{x^2+y^2}{c^2}}
F(x,y)=λ∗e−c2x2+y2
其中C是高斯环绕尺度,λ是一个尺度,满足
∫
∫
F
(
x
,
y
)
d
x
d
y
=
1
∫∫F(x,y)dxdy=1
∫∫F(x,y)dxdy=1
SSR算法中的卷积是对入射图像的计算,其物理意义是通过计算像素点与周围区域在加权平均的作用下,估计图像中照度的变化,并将L(x,y)去除,只保留S(x,y)属性。
多尺度MSR
(Multi-Scale Retinex)
MSR是在SSR基础上发展来的,优点是可以同时保持图像高保真度与对图像的动态范围进行压缩的同时,MSR也可实现色彩增强、颜色恒常性、局部动态范围压缩、全局动态范围压缩,也可以用于X光图像增强。
r
(
x
,
y
)
=
∑
k
K
w
k
l
o
g
S
(
x
,
y
)
−
l
o
g
[
F
k
(
x
,
y
)
∗
S
(
x
,
y
)
]
r(x,y)=∑_k^Kw_klogS(x,y)-log[F_k(x,y)*S(x,y)]
r(x,y)=k∑KwklogS(x,y)−log[Fk(x,y)∗S(x,y)]
K是高斯中心环绕函数的个数。当K=1时,MSR退化为SSR,K取值通常为3
w
1
=
w
2
=
w
3
=
1
3
w1=w2=w3=\frac13
w1=w2=w3=31
缺点:边缘锐化不足,阴影边界突兀,部分颜色发生扭曲,纹理不清晰,高光区域细节没有得到明显改善,对高光区域敏感度小
带颜色恢复的MSR方法MSRCR
(Multi-Scale Retinex with Color Restoration)
SSR和MSR普遍都存在明显的偏色问题
MSRCR在MSR的基础上,加入了色彩恢复因子C来调节由于图像局部区域对比度增强而导致颜色失真的缺陷。
改进公式:
R
M
S
R
C
R
i
(
x
,
y
)
=
C
i
(
x
,
y
)
R
M
S
R
i
(
x
,
y
)
R_{MSRCR_i}(x,y)=C_i(x,y)R_{MSR_i}(x,y)
RMSRCRi(x,y)=Ci(x,y)RMSRi(x,y)
其中
C
i
(
x
,
y
)
=
f
[
I
i
′
(
x
,
y
)
]
=
f
[
I
i
(
x
,
y
)
∑
j
=
1
N
I
j
(
x
,
y
)
]
C_i(x,y)=f[I_i^{'}(x,y)]=f[\frac{I_i(x,y)}{∑_{j=1}^{N}I_j(x,y)}]
Ci(x,y)=f[Ii′(x,y)]=f[∑j=1NIj(x,y)Ii(x,y)]
其中
f
[
I
i
′
(
x
,
y
)
]
=
β
l
o
g
[
α
I
i
′
(
x
,
y
)
]
=
β
l
o
g
[
α
I
i
′
i
(
x
,
y
)
]
−
l
o
g
[
∑
j
=
1
N
I
j
(
x
,
y
)
]
f[I_i^{'}(x,y)]=βlog[αI_i^{'}(x,y)]=β{log[αI_i^{'}i(x,y)]-log[∑_{j=1}^NI_j(x,y)]}
f[Ii′(x,y)]=βlog[αIi′(x,y)]=βlog[αIi′i(x,y)]−log[j=1∑NIj(x,y)]
参数说明
Ii(x, y)表示第i个通道的图像
Ci表示第i个通道的彩色回复因子,用来调节3个通道颜色的比例;
f(·)表示颜色空间的映射函数;
β是增益常数;
α是受控制的非线性强度;
MSRCR算法利用彩色恢复因子C,调节原始图像中3个颜色通道之间的比例关系,从而把相对较暗区域的信息凸显出来,达到了消除图像色彩失真的缺陷。
处理后的图像局部对比度提高,亮度与真实场景相似,在人们视觉感知下,图像显得更加逼真。
图像处理_Retinex图像增强的更多相关文章
- 图像处理之图像增强项目---csdn去雾专栏1
(一)高斯低通滤波去噪 高斯低通滤波器(Gaussian Low Pass Filter)是一类传递函数为高斯函数的线性平滑滤波器.又由于高斯函数是正态分布的密度函数.因此高斯低通滤波器对于去除服从正 ...
- GOCVHelper图像处理算法库实例整编
GOCVHelper主要包含图像处理.图像增强和基础文件处理三个部分.由于前两个部分较具有通用性,而且我在不同项目中都进行了反复使用,为了进一步说明类库内容,这里反过来从项目角度出发,对现有的 ...
- 【并行计算-CUDA开发】FPGA 设计者应该学习 OpenCL及爱上OpenCL的十个理由
为什么要学习OpenCL呢?就目前我所从事的医疗超声领域,超声前端的信号处理器一般是通过FPGA或FPGA+DSP来设计的,高端设备用的是FPGA+ GPU架构.传统的设计方法是通过HDL语言来进行设 ...
- 纯Python综合图像处理小工具(2)图像增强
<背景> 这次分享的脚本是对图像进行增强处理,包含对图像像素的色彩增强.亮度增强.对比度增强.图像尖锐化等增强操作,主要基于PIL包的lambda和ImageEnhance模块. 使用方法 ...
- MATLAB数字图像处理(二)图像增强
1 图像增强 1.1 直方图均衡化 对于灰度图像,可以使用直方图均衡化的方法使得原图像的灰度直方图修正为均匀的直方图. 代码如下: I2=histeq(I1); ...
- 图像处理之增强---图像增强算法四种,图示与源码,包括retinex(ssr、msr、msrcr)和一种混合算法
申明:本文非笔者原创,原文转载自:http://blog.csdn.net/onezeros/article/details/6342661 两组图像:左边较暗,右边较亮 第一行是原图像,他们下面是用 ...
- Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉
Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉 1.1. 按照当前流行的分类方法,可以分为以下三部分:三部分 图像处理 图像分析 计算机视觉1 1.2. 图像处理需要 ...
- Atitit 图像处理的摩西五经attilax总结
Atitit 图像处理的摩西五经attilax总结 1. 数字图像处理(第三版)1 2. 图像处理基础(第2版)(世界著名计算机教材精选)1 3. 计算机视觉特征提取与图像处理(第三版)2 4. Op ...
- Atitit MATLAB 图像处理 经典书籍attilax总结
Atitit MATLAB 图像处理 经典书籍attilax总结 1.1. MATLAB数字图像处理1 1.2. <MATLAB实用教程(第二版)>((美)穆尔 著)[简介_书评_在线阅读 ...
- Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx
Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx 分类 图像处理知识点体系 v2 qb24.xlsx 分类 分类 理论知识 图像金字塔 常用底层操作 卷积扫描 ...
随机推荐
- Semantic Kernel 入门系列:🥑Memory内存
了解的运作原理之后,就可以开始使用Semantic Kernel来制作应用了. Semantic Kernel将embedding的功能封装到了Memory中,用来存储上下文信息,就好像电脑的内存一样 ...
- Go For Web:Golang http 包详解(源码剖析)
前言: 本文作为解决如何通过 Golang 来编写 Web 应用这个问题的前瞻,对 Golang 中的 Web 基础部分进行一个简单的介绍.目前 Go 拥有成熟的 Http 处理包,所以我们去编写一个 ...
- Go语言基础: JSON序列化
JSON 是一种轻量级的数据交换格式.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率. 首先得熟悉结构体: pack ...
- Cron表达式介绍与示例
1. 概念介绍 Cron表达式是一个具有时间含义的字符串,字符串以5~6个空格隔开,分为6~7个域,格式为X X X X X X X.其中X是一个域的占位符.最后一个代表年份的域非必须,可省略.单 ...
- [C++提高编程] 3.3 deque容器
文章目录 3.3 deque容器 3.3.1 deque容器基本概念 3.3.2 deque构造函数 3.3.3 deque赋值操作 3.3.4 deque大小操作 3.3.5 deque 插入和删除 ...
- 【解决方法】windos server 2019 在批量创建DNS的正向与反向记录时,提示报错: >Command failed: ERROR_ACCESS_DENIED 5 0x5
目录-快速跳转 问题描述 原因分析: 解决方案: 附言: 问题描述 操作环境与场景: 在 VM 内 windos server 2019 在批量创建DNS的正向与反向记录时,提示报错: Command ...
- 搭建一个简易框架 3秒创建一个WebApi接口
前端ajax请求数据,传递的参数都是一个json字符串,经过多次解析发现其实都是一个DataSet {"selectA1":[{"Name":"156 ...
- Django笔记三十七之多数据库操作(补充版)
本文首发于公众号:Hunter后端 原文链接:Django笔记三十七之多数据库操作(补充版) 这一篇笔记介绍一下 Django 里使用多数据库操作. 在第二十二篇笔记中只介绍了多数据库的定义.同步命令 ...
- 2021-11-30:给定一个数组arr,当拿走某个数a的时候,其他所有的数都+a, 请返回最终所有数都拿走的最大分数。 比如: [2,3,1], 当拿走3时,获得3分,数组变成[5,4]; 当拿走5
2021-11-30:给定一个数组arr,当拿走某个数a的时候,其他所有的数都+a, 请返回最终所有数都拿走的最大分数. 比如: [2,3,1], 当拿走3时,获得3分,数组变成[5,4]: 当拿走5 ...
- ICML 2017-Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks
Key Gradient Descent+TRPO+policy Gradient 训练模型的初始参数,模型在新任务上只需参数通过一个或多个用新任务的少量数据计算的梯度步骤更新后,就可以最大的性能.而 ...