图像处理_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 分类 分类 理论知识 图像金字塔 常用底层操作 卷积扫描 ...
随机推荐
- redis 基于 漏斗算法 实现对 api 的限流
漏斗算法 漏桶算法的原理: 漏桶有一定的容量,给漏桶注水,当单位时间内注入水量大于流出水量,漏桶内积累的水就会越来越多,直到溢出. 就好比大批量请求访问nginx相当于注水,nginx根据配置按照固定 ...
- Redis(七)缓存穿透、缓存击穿、缓存雪崩以及分布式锁
应用问题解决 1 缓存穿透 1.1 访问结构 正常情况下,服务器接收到浏览器发来的web服务请求,会先去访问redis缓存,如果缓存中存在数据则直接返回,否则会去查询数据库里面的数据,然后保存在red ...
- Vuex刷新页面数据会丢失吗?咋解决的?
1.问题描述:页面刷新的时候vuex里的数据会重新初始化,导致数据丢失.因为vuex里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,vuex里面的数据就会被重新赋值. 2.解决思 ...
- MDC轻量化日志链路跟踪的若干种应用场景
"If debugging is the process of removing software bugs, then programming must be the process of ...
- 搭建SpringCloudAlibaba父工程
1.首先创建一个maven项目 删除src目录,当做一级目录用来管理第三方jar版本控制. 2.配置pom文件. SpringCloud.SpringCloudAlibaba.SpringBoot版本 ...
- [C++基础入门] 6、 函数
文章目录 6 函数 6.1 概述 6.2 函数的定义 6.3 函数的调用 6.4 值传递 6.5 函数的常见样式 6.6 函数的声明 6.7 函数的分文件编写 6 函数 6.1 概述 **作用:**将 ...
- TED--10 ways to have a better conversation
10 ways to have a better conversation All right, I want to see a show of hands: how many of you have ...
- Docker高级
一.Docker安装企业级开发应用 1.Docker搭建MySQL主从 (1) 创建master主机MySQL docker run -p 3307:3306 --name mysql-master ...
- Redis缓存穿透、击穿、雪崩
文章目录 缓存穿透 缓存雪崩 缓存击穿 代码实战部分 缓存击穿实战代码封装 缓存穿透解决 Redis目前是非常流行的缓存数据库,缓存穿透.缓存击穿.缓存雪崩是常见的面试题,也是非常重要的问题. 缓存穿 ...
- 2021-09-27:Pow(x, n)。实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x**n)。力扣50。
2021-09-27:Pow(x, n).实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x**n).力扣50. 福大大 答案2021-09-27: 遍历n的二进制位. 时间复杂度:O( ...