【阅读笔记】低照度图像增强-《An Integrated Neighborhood Dependent...
本文介绍的是一种比较实用的低照度图像增强算法,选自2004年Tao的一篇论文,名称是《An Integrated Neighborhood Dependent Approach for Nonlinear Enhancement of Color Images 》
概述
图像中暗区图像增强的基本机制是对图像的亮度进行动态范围压缩,但是图像的对比度会下降,输出图像看起来会变灰。为了提高图像的整体质量,必须应用对比度增强过程来恢复甚至增强原始图像的对比度信息。本文采用亮度提升和对比度增强两个独立模块分别处理。
1、通过使用非线性传递函数实现的亮度提升。可以手动或自动调整该传递函数以实现适当的亮度增强。
2、图像通过对比度增强进行处理,与传统技术不同,对比度增强是基于处理后(中心)像素及其周围相邻像素的强度信息的自适应过程。通过使用具有高斯核卷积来获得周围像素的亮度信息。具有相同亮度的像素可能根据其邻近像素具有不同的输出。可以最佳地增强图像对比度和细节,同时可以在不降低图像质量的情况下控制动态范围扩展。
算法过程
1、RGB图像
I
r
g
b
I^{rgb}
Irgb转为灰度图像
Y
Y
Y,并归一化为
Y
n
Y_{n}
Yn
2、根据下式进行非线性转换
Y
n
′
=
(
Y
n
0.24
+
(
1
−
Y
n
)
∗
0.5
+
Y
n
2
)
2
Y_{n}^{'}=\frac{(Y_{n}^{0.24}+(1-Y_{n})*0.5+Y_{n}^{2})}{2}
Yn′=2(Yn0.24+(1−Yn)∗0.5+Yn2)
这种变换可以很大程度上提高暗像素(区域)的亮度,而亮像素(区域)的亮度增强较低,甚至是负增强。从而达到较好的效果
一个非线性gamma映射曲线
3、对灰度图像
Y
Y
Y进行不同尺度的高斯核函数卷积运算,得到模糊图像
Y
′
Y'
Y′,卷积公式如下:
Y
′
(
x
,
y
)
=
Y
(
x
,
y
)
∗
G
(
x
,
y
)
Y'(x, y) = Y(x, y) * G(x, y)
Y′(x,y)=Y(x,y)∗G(x,y)
高斯卷积核
G
(
x
,
y
)
G(x,y)
G(x,y)如下:
G
(
x
,
y
)
=
K
∗
e
(
−
(
x
2
+
y
2
)
c
2
)
G(x,y)=K*e^{(\frac{-(x^2+y^2)}{c^2})}
G(x,y)=K∗e(c2−(x2+y2))
其中,
K
K
K函数
∬
K
∗
e
(
−
(
x
2
+
y
2
)
c
2
)
d
x
d
y
=
1
\iint K*e^{(\frac{-(x^2+y^2)}{c^2})}dxdy=1
∬K∗e(c2−(x2+y2))dxdy=1
其中,
c
c
c是高斯函数尺度;
4、通过下式得到增强系数
R
R
R
R
(
x
,
y
)
=
255
∗
Y
n
′
(
x
,
y
)
r
(
x
,
y
)
R(x,y) =255* Y_{n}^{'}(x,y)^{r(x,y)}
R(x,y)=255∗Yn′(x,y)r(x,y)
其中,
r
(
x
,
y
)
r(x,y)
r(x,y)如下
r
(
x
,
y
)
=
Y
′
(
x
,
y
)
Y
(
x
,
y
)
r(x,y)=\frac{Y'(x, y)}{Y(x, y)}
r(x,y)=Y(x,y)Y′(x,y)
中心像素的亮度可以根据
R
(
x
,
y
)
R(x,y)
R(x,y)是否大于或小于1(由较亮像素或较暗像素包围)而增加或减少。
5、为了获得最佳的图像增强效果,使用不同尺度的多个卷积结果进行对比度增强。最终的输出是基于多个尺度的对比度增强结果的线性组合
R
(
x
,
y
)
=
∑
i
w
i
R
i
(
x
,
y
)
R(x,y)=\sum_{i}w_{i}R_{i}(x,y)
R(x,y)=i∑wiRi(x,y)
尺度选择5, 20 and 240,权重为取均值
6、RGB三通道等比例恢复
R
j
(
x
,
y
)
=
R
(
x
,
y
)
∗
I
j
(
(
x
,
y
)
I
(
(
x
,
y
)
∗
λ
R_{j}(x,y)=R(x,y)*\frac{I_{j}((x,y)}{I((x,y)}*\lambda
Rj(x,y)=R(x,y)∗I((x,y)Ij((x,y)∗λ
其中,
j
j
j表示rgb三通道分量,
R
j
R_j
Rj是增强图像。
λ
\lambda
λ表示色调调节因子,通常取1也可,输出的彩色图像可以通过色彩饱和度和白平衡调整进一步细化。
效果对比


图、测试图像1、INDANE处理效果


图、测试图像2、INDANE处理效果
算法总结
算法本质是暗区提亮gamma曲线映射实现,亮区不处理或者轻微处理。后续对比度处理精细化增强系数,需要多尺度高斯核函数卷积。
非线性gamma曲线如图下蓝线,线性映射如黄色线:

【阅读笔记】低照度图像增强-《An Integrated Neighborhood Dependent...的更多相关文章
- Mysql DOC阅读笔记
Mysql DOC阅读笔记 转自我的Github Speed of SELECT Statements 合理利用索引 隔离调试查询中花费高的部分,例如函数调用是在结果集中的行执行还是全表中的行执行 最 ...
- [置顶]
人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)
这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...
- 阅读笔记 1 火球 UML大战需求分析
伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本 <火球 UML大战需求分析>,首先 ...
- [阅读笔记]Software optimization resources
http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++ 7. The efficiency of differe ...
- 《uml大战需求分析》阅读笔记05
<uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...
- <<UML大战需求分析>>阅读笔记(2)
<<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...
- uml大战需求分析阅读笔记01
<<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...
- Hadoop阅读笔记(七)——代理模式
关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...
- Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable
酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑 ...
- Hadoop阅读笔记(五)——重返Hadoop目录结构
常言道:男人是视觉动物.我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物.某些场合(比如面试.初次见面等),别人没有那么多的闲暇时间听你诉说过往以塑立一个关于你的完整模型.所以,第一眼 ...
随机推荐
- win10启动docker报错,错误码 0xffffffff
一.注册表修复(如果有就不用管) 在\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Ca ...
- ☆常用的Sql语句汇总(DDL/DML)
常用的sql语句汇总 1.获取所有表名.表信息 里面有表注释 数据库种类 sql 备注 mysql -- 获取所有表名.视图名show tables-- 获取 dev_test_data数据库 所有表 ...
- 2023-05-09:石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。 有 n 块石子排成一排。 每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头, 并获得与该行中剩余石头值
2023-05-09:石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 . 有 n 块石子排成一排. 每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头, 并获得与该行中剩余石头值 ...
- 2022-07-22:以下go语言代码输出什么?A:1;B:1.5;C:编译错误;D:1.49。 package main import “fmt“ func main() { var i
2022-07-22:以下go语言代码输出什么?A:1:B:1.5:C:编译错误:D:1.49. package main import "fmt" func main() { v ...
- 2021-02-16:n皇后问题。给定一个整数n,返回n皇后的摆法有多少种?
福哥答案2021-02-16: 自然智慧即可.1.普通递归.有代码.需要判断同列和斜线.2.位运算递归.有代码.3.我的递归.有代码.只需要判断斜线. 代码用golang编写,代码如下: packag ...
- 2022-02-16:将数组分割成和相等的子数组。 给定一个有 n 个整数的数组,你需要找到满足以下条件的三元组 (i, j, k) : 0 < i, i + 1 < j, j + 1 < k < n
2022-02-16:将数组分割成和相等的子数组. 给定一个有 n 个整数的数组,你需要找到满足以下条件的三元组 (i, j, k) : 0 < i, i + 1 < j, j + 1 & ...
- 2021-05-06:给定一个二维数组matrix, 你可以从任何位置出发,走向上下左右四个方向 。返回能走出来的最长的递增链长度。
2021-05-06:给定一个二维数组matrix, 你可以从任何位置出发,走向上下左右四个方向 .返回能走出来的最长的递增链长度. 福大大 答案2021-05-06: 自然智慧即可. 动态规划.二维 ...
- 2022-01-06:N个结点之间,表世界存在双向通行的道路,里世界存在双向通行的传送门. 若走表世界的道路,花费一分钟. 若走里世界的传送门,不花费时间,但是接下来一分钟不能走传送门. 输入: T为
2022-01-06:N个结点之间,表世界存在双向通行的道路,里世界存在双向通行的传送门. 若走表世界的道路,花费一分钟. 若走里世界的传送门,不花费时间,但是接下来一分钟不能走传送门. 输入: T为 ...
- 函数strncpy和memcpy的区别
1定义 1.1 memcpy void *memcpy(void *destin, void *source, unsigned n); 参数 *destin ---- 需要粘贴的新数据(地址) *s ...
- 从GFS到GPT,AI Infra的激荡20年
导读 最近AIGC和LLM的浪潮层层迭起,大有把AI行业过去十年画的饼,一夜之间完全变现的势头.而 AI Infra (构建AI所需的基础设施),也成了讨论的焦点之一.大众对AI Infra的关注点 ...