图像处理_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 分类 分类 理论知识 图像金字塔 常用底层操作 卷积扫描 ...
随机推荐
- 运行项目报错Cannot read property 'styles' of undefined
原因是安装依赖版本不对,以下是我的解决办法: 1.先删除项目中package-lock.json 文件 及node_modules文件(可使用rimraf指令删除node_modules,直接删文件很 ...
- JS 对输入框进行限制(常用的都有)
文章来源 http://www.soso.io/article/24096.html 1.文本框只能输入数字代码(小数点也不能输入) 代码如下: <input οnkeyup="thi ...
- docker 容器操作、应用部署、mysql,redis,nginx、迁移与备份、Dockerfile
容器操作 # 启动容器 docker start 容器id # 停止容器 docker stop 容器id # 文件拷贝 先创建文件 mkdir:文件夹 vi vim touch:文件 # 容器的文件 ...
- Go/Python 基于gRPC传输图片
python程序作为服务端,Go程序作为客户端,基于gPRC进行通信 客户端 定义proto文件: syntax = "proto3"; option go_package = & ...
- 使用 Transformers 进行图分类
在之前的 博文 中,我们探讨了图机器学习的一些理论知识.这一篇我们将探索如何使用 Transformers 库进行图分类.(你也可以从 此处 下载演示 notebook,跟着一起做!) 目前,Tran ...
- TEMP_FAILURE_RETRY宏的用法
#define TEMP_FAILURE_RETRY(expression) \ (__extension__\ ({ long int __result;\ do ...
- 【性能】JDK和Jmeter的安装与配置
一.JDK环境配置 1. 下载JDK 官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downl ...
- Python工具箱系列(三十)
PostgreSQL MySQL的口号是"世界上最流行的开源关系型数据库",而PostgreSQL的Slogan则是"世界上最先进的开源关系型数据库(PostgreSQL ...
- 文心一言 VS chatgpt (9)-- 算法导论2.3 7题 3.1 1题
七.描述一个运行时间为O(nlgn)的算法,给定n个整数的集合S和另一个整数,该算法能确定 S中是否存在两个其和刚好为工的元素. 文心一言: 这里是一个运行时间为O(nlgn)的算法,可以用来确定集合 ...
- 2023-03-28:有一根长度为 n 个单位的木棍,棍上从 0 到 n 标记了若干位置。 给你一个整数数组 cuts ,其中 cuts[i] 表示你需要将棍子切开的位置, 你可以按顺序完成切割,也可
2023-03-28:有一根长度为 n 个单位的木棍,棍上从 0 到 n 标记了若干位置. 给你一个整数数组 cuts ,其中 cuts[i] 表示你需要将棍子切开的位置, 你可以按顺序完成切割,也可 ...