图像处理_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 分类 分类 理论知识 图像金字塔 常用底层操作 卷积扫描 ...
随机推荐
- 靶机渗透【billu_b0x】
ip扫描 访问80端口 目录扫描 逐个访问 上传一个图片马,结果没有回显 显示file参数为空.请在"文件"参数中提供文件路径 打开发现有用户名 ![] 发现数据库连接的配置信息, ...
- Java的对象克隆
本节我们会讨论 Cloneable 接口,这个接口指示一个类提供了一个安全的 clone() 方法. Object 类提供的 clone() 方法是 "浅拷贝",并没有克隆对象中引 ...
- iptables四个表五条链
iptables四个表五条链 其实关于iptables的使用网上的资料和教程也比较多,主要是要理解其中的路由前和路由后每个表和链所处的位置和作用,明白了也就简单了,以下是我转载的觉得写的比较详 ...
- 数据分析02-(pandas介绍、jupyter notebook)
数据分析-02 数据分析-02 pandas pandas介绍 pandas核心数据结构 Series DataFrame 核心数据结构操作 复合索引 Jupyter notebook 数据加载 处理 ...
- 一天吃透Redis面试八股文
Redis连环40问,绝对够全! Redis是什么? Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库.与传统数据库不同的是,Re ...
- 2022-11-02:以下go语言代码输出什么?A:编译错误;B:apple;C:ant;D:panic。 package main import “fmt“ func main() {
2022-11-02:以下go语言代码输出什么?A:编译错误:B:apple:C:ant:D:panic. package main import "fmt" func main( ...
- 2021-04-17:给定一个整型数组 arr,数组中的每个值都为正数,表示完成一幅画作需要的时间,再 给定 一个整数 num,表示画匠的数量,每个画匠只能画连在一起的画作。所有的画家 并行工作,请
2021-04-17:给定一个整型数组 arr,数组中的每个值都为正数,表示完成一幅画作需要的时间,再 给定 一个整数 num,表示画匠的数量,每个画匠只能画连在一起的画作.所有的画家 并行工作,请 ...
- 2022-02-02:最接近的二叉搜索树值 II。 给定一个不为空的二叉搜索树和一个目标值 target,请在该二叉搜索树中找到最接近目标值 target 的 k 个值。 注意: 给定的目标值 ta
2022-02-02:最接近的二叉搜索树值 II. 给定一个不为空的二叉搜索树和一个目标值 target,请在该二叉搜索树中找到最接近目标值 target 的 k 个值. 注意: 给定的目标值 tar ...
- 2021-10-08:填充每个节点的下一个右侧节点指针。给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找
2021-10-08:填充每个节点的下一个右侧节点指针.给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点.填充它的每个 next 指针,让这个指针指向其下一个右侧节点.如果找 ...
- 8张图带你全面了解kafka的核心机制
前言 kafka是目前企业中很常用的消息队列产品,可以用于削峰.解耦.异步通信.特别是在大数据领域中应用尤为广泛,主要得益于它的高吞吐量.低延迟,在我们公司的解决方案中也有用到.既然kafka在企业中 ...