图像处理_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 分类 分类 理论知识 图像金字塔 常用底层操作 卷积扫描 ...
随机推荐
- TiDB与MySQL的SQL差异及执行计划简析
作者:京东零售 肖勇 一. 前言导读 TiDB作为NewSQL,其在对MySQL(SQL92协议)的兼容上做了很多,MySQL作为当下使用较广的事务型数据库,在IT界尤其是互联网间使用广泛,那么对于开 ...
- JavaScript基础语法-变量
JavaScript JavaScript - 变量 1. 概念 变量是用于存放数据的容器 通过变量名可以获取数据 并且数据是可修改的 2. 使用 声明变量 只声明不赋值 直接调用 程序会输出unde ...
- 知乎问题:如何说服技术老大用 Redis ?
这个问题很微妙,可能这位同学内心深处,觉得 Redis 是所有应用缓存的标配. 缓存的世界很广阔,对于应用系统来讲,我们经常将缓存划分为本地缓存和分布式缓存. 本地缓存 :应用中的缓存组件,缓存组件和 ...
- AspNetCoreRateLimit应用于MVC项目求助
AspNetCoreRateLimit应用于MVC项目求助 前言 之前发过一篇文章: .NET Core WebApi接口ip限流实践 - 妙妙屋(zy) - 博客园 (cnblogs.com) 然后 ...
- 2020-09-16:谈谈TCP的控制位?
福哥答案2020-09-16:#福大大架构师每日一题# 福哥口诀法:紧确推和复同终(紧急位URG,确认位ACK,推送位PSH,复位位RST,同步位SYN,终止位FIN). [答案来自此链接](http ...
- docker无法启动,报错grpc: addrConn.createTransport failed to connect to {unix:///run/containerd/containerd.
docker无法启动,报错.k8s的pod镜像加载失败. 解法方法: 删除/var/lib/docker/和/var/lib/containerd/ 这两个文件夹,重起docker服务. 问题完美解决 ...
- 2021-01-29:redis同步机制是怎样的?
福哥答案2021-01-30: [答案1:](https://italk.mashibing.com/question/detail/ques_00006009)全量同步master服务器会开启一个后 ...
- 2022-05-03:Alice 和 Bob 再次设计了一款新的石子游戏。现有一行 n 个石子,每个石子都有一个关联的数字表示它的价值。给你一个整数数组 stones ,其中 stones[i] 是第
2022-05-03:Alice 和 Bob 再次设计了一款新的石子游戏.现有一行 n 个石子,每个石子都有一个关联的数字表示它的价值.给你一个整数数组 stones ,其中 stones[i] 是第 ...
- 2021-04-27:如果一个字符相邻的位置没有相同字符,那么这个位置的字符出现不能被消掉。比如:“ab“,其中a和b都不能被消掉 。如果一个字符相邻的位置有相同字符,就可以一起消掉。比如:“abbb
2021-04-27:如果一个字符相邻的位置没有相同字符,那么这个位置的字符出现不能被消掉.比如:"ab",其中a和b都不能被消掉 .如果一个字符相邻的位置有相同字符,就可以一起消 ...
- Prompt工程师指南[应用篇]:Prompt应用、ChatGPT|Midjouney Prompt Engineering
Prompt工程师指南[应用篇]:Prompt应用.ChatGPT|Midjouney Prompt Engineering 1.ChatGPT Prompt Engineering 主题: 与 Ch ...