本文介绍的是一种比较实用的低照度图像增强算法,选自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∑​wi​Ri​(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...的更多相关文章

  1. Mysql DOC阅读笔记

    Mysql DOC阅读笔记 转自我的Github Speed of SELECT Statements 合理利用索引 隔离调试查询中花费高的部分,例如函数调用是在结果集中的行执行还是全表中的行执行 最 ...

  2. [置顶] 人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)

    这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...

  3. 阅读笔记 1 火球 UML大战需求分析

    伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本   <火球 UML大战需求分析>,首先 ...

  4. [阅读笔记]Software optimization resources

    http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++   7. The efficiency of differe ...

  5. 《uml大战需求分析》阅读笔记05

    <uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...

  6. <<UML大战需求分析>>阅读笔记(2)

    <<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...

  7. uml大战需求分析阅读笔记01

    <<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...

  8. Hadoop阅读笔记(七)——代理模式

    关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...

  9. Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable

    酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑 ...

  10. Hadoop阅读笔记(五)——重返Hadoop目录结构

    常言道:男人是视觉动物.我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物.某些场合(比如面试.初次见面等),别人没有那么多的闲暇时间听你诉说过往以塑立一个关于你的完整模型.所以,第一眼 ...

随机推荐

  1. CommunityToolkit.Mvvm8.1 IOC依赖注入控制反转(5)

    本系列文章导航 https://www.cnblogs.com/aierong/p/17300066.html https://github.com/aierong/WpfDemo (自我Demo地址 ...

  2. Kubernetes中使用Helm2的安全风险

    参考 http://rui0.cn/archives/1573 英文文章  https://blog.ropnop.com/attacking-default-installs-of-helm-on- ...

  3. 下一代大数据分布式存储技术Apache Ozone初步研究

    @ 目录 概述 定义 特性 架构 总体架构 写数据 读数据 部署 安装方式 安装 Docker启动 Docker-compose启动 企业预置型(On Premise)安装 实践 命令行接口 Ofs ...

  4. shell基本命令与参数

    1:一行可以有多个命令,用";"分开 如: cd ..; ls -l 2:先项用"-"开始,多个连接可连在一起,如:ls -lh, 3:"--&quo ...

  5. AI 绘画咒语入门 - Stable Diffusion Prompt 语法指南 【成为初级魔导士吧!】

    要用好 Stable Diffusion,最最重要的就是掌握 Prompt(提示词).由于提示词对于生成图的影响甚大,所以被称为魔法,用得好惊天动地,用不好魂飞魄散 . 因此本篇整理下提示词的语法(魔 ...

  6. 「微服务」这10道Consul面试题值得一看

    前言 Consul 是一种非常强大的分布式服务发现和配置管理工具,它可以帮助开发人员和运维人员更好地管理和维护分布式系统. 但是,使用 Consul 也需要投入一定的人力和物力,需要根据实际情况进行选 ...

  7. 猿人学内部js练习平台习题记录

    猿人学内部js练习平台习题记录 根据课程更新 当前先完成第7题和第10题 第7题 骚操作 请求规律检测1 - post 1)通过fiddler抓包,看看请求头和请求体有什么骚操作的地方,如果没有反爬就 ...

  8. 富文本编辑器 VUE-QUILL-EDITOR 使用教程 (最全)

    VUE-QUILL-EDITOR 基于 QUILL.适用于 VUE 的富文本编辑器,支持服务端渲染和单页应用,非常高效简洁. 一.基础用法 1.NPM 导入 VUE-QUILL-EDITOR npm ...

  9. 【论文笔记】Deeplab系列

    [深度学习]总目录 DeepLab系列是谷歌团队提出的一系列语义分割算法.DeepLab v1于2014年推出,随后2017到2018年又相继推出了DeepLab v2,DeepLab v3以及Dee ...

  10. 最小编译器和 UI 框架「GitHub 热点速览」

    如果有一个关键词来概述本周的 GitHub 热门项目的话,大概就是 van 和 sectorc 都用到的 smallest.只不过一个是前端的响应式框架,一个是搞编译的 C 编译器.它们除了轻量化这个 ...