2013年发表在TIP上的对比度增强算法AGCWD(Efficient contrast enhancement using adaptive gamma correction with weighting distribution)

提出了一种自动映射技术,通过亮度像素的伽马校正和概率分布来提高调暗图像的亮度。为了增强视频,所提出的图像增强方法使用关于每帧之间差异的时间信息来减少计算复杂性。该算法本质上是一种自适应的gamma校正算法,其中,“自适应”是利用图像直方图信息来实现的,本文提出了一种混合HM方法,将cdf、加权分布和伽玛校正相结合的算法

算法步骤:

假设X表示我们的输入图像,其亮度$l$的变化范围$l_{min}$和$l_{max}$,那么这个算法一共分为5步来执行:

1、Image Statistics Computation

图像$X(i,j)$,亮度灰阶$I$的动态范围是$l_{min}$和$l_{max}$,其中 $l_{min}$是最小的灰度阶,例如8bit数据,Imin最小为0,最大为255。统计图像的灰阶像素分布概率probability density function (PDF)。

$$

PDF(l) =\frac{n_{l}}{MN}

$$

其中,$MN$是像素总个数,$n_{l}$是灰阶n对应的像素数。

2、Weighting Probability Density Function

利用cd f并应用归一化伽玛函数来修改变换曲线,而不会丢失可用的统计直方图,对前一步算出来的概率密度函数进行修改,加权分布(WD)函数也用于略微修改统计直方图,得到加权概率密度函数。

$$

PDF_{w}(l) =max(PDF)*(\frac{PDF(l)-min(PDF)}{max(PDF)-min(PDF)})^{\alpha}

$$

较低的伽玛参数产生更显著的调整,alpha可取[0.1,0.5]值,根据经验可以取0.5,让函数曲线更加平滑

3、Smoothed Cumulative Distribution Function

用$PDF_{w}(l)$计算cumulative distribution function (CDF) ,做归一化处理,利用第二步算出来的加权概率密度函数,求出平滑的累积分布函数

$$

CDF_{s}(l) =\sum_{l=l_{min}}^{l_{max}}\frac{PDF_{w}(l)}{\sum{PDF_{w}}}

$$

4、Adaptive Gamma Correction

T(l)transform function,利用第三步的图像累积分布函数信息CDF,进行自适应的gamma校正。

$$

T(l) = (l_{max}-l_{min})*(\frac{l}{l_{max}-l_{min}})^{\gamma}

$$

$$

\gamma=1-CDF_{s}(l)*P

$$

其中,P表示自适应参数,设置为1,取值范围[0.5,1]

5、Final Luminance Transformation

在映射函数T(l)映射函数中,最后一步就是对图像每个像素点的亮度值进行映射,就得到了对比度增强后的图像

$$

Y= {T (X(i, j))|∀X(i, j) ∈ X}

$$


该算法支持图像、视频数据流处理,图像数据流处理pipeline如下图:

视频数据流处理pipeline如下图:

仿真结果

仿真代码matlab Demo可以参考 ,自己跑跑看结果

代码链接:

https://github.com/AomanHao/ISP_Low_Light_Image_Enhancement


我的个人博客主页,欢迎访问

我的CSDN主页,欢迎访问

我的GitHub主页,欢迎访问

我的知乎主页,欢迎访问

【阅读笔记】对比度增强-《Efficientcontrast enhancement using adaptive gamma correction with weighting distribution 》 date: 2023-12-08 10:08:00的更多相关文章

  1. [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximati

    [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximation 本文结构 解决问题 主要贡献 主要 ...

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

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

  3. opencv----彩色图像对比度增强

    图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法. 直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法. 直方图拉伸是通过对比度拉伸对直方图进行调整,从而“ ...

  4. JavaScript高级程序设计 - 阅读笔记

    [本博客为原创:http://www.cnblogs.com/HeavenBin/] 前言: 大致花费了一个星期的时间把这本书认真看了半本,下面是我做的阅读笔记,希望能够让看这本书的人有个大致的参考. ...

  5. StackGAN 阅读笔记

    StackGAN 阅读笔记 StackGAN论文下载链接(arxiv) 创新点 提出多尺度的GAN Stage-I GAN Stage-II GAN Stage-I GAN 主要是根据文本描述抓取目标 ...

  6. 论文阅读笔记“Attention-based Audio-Visual Fusion for Rubust Automatic Speech recognition”

    关于论文的阅读笔记 论文的题目是“Attention-based Audio-Visual Fusion for Rubust Automatic Speech recognition”,翻译成中文为 ...

  7. 《Graph Neural Networks: A Review of Methods and Applications》阅读笔记

    本文是对文献 <Graph Neural Networks: A Review of Methods and Applications> 的内容总结,详细内容请参照原文. 引言 大量的学习 ...

  8. Minimum Barrier Salient Object Detection at 80 FPS 论文阅读笔记

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  9. Gated CNN 阅读笔记

    之前看过TCN,稍微了解了一下语言模型,这篇论文也是对语言模型建模,但是由于对语言模型了解不深,一些常用数据处理方法,训练损失的计算包括残差都没有系统的看过,只是参考网上代码对论文做了粗浅的复现.开学 ...

  10. HashMap源码阅读笔记

    HashMap源码阅读笔记 本文在此博客的内容上进行了部分修改,旨在加深笔者对HashMap的理解,暂不讨论红黑树相关逻辑 概述   HashMap作为经常使用到的类,大多时候都是只知道大概原理,比如 ...

随机推荐

  1. 【SpringBoot】 启动后会调用执行的方法的 (五种方式)

    在 SpringBoot 工程 启动后, 会调用执行方法的五种方式: 亲自测试, 按照执行顺序如下: 第一种: @Component public class SpringContext1 { @Po ...

  2. vue 状态管理 一、状态管理概念和基本结构

    系列导航 vue 状态管理 一.状态管理概念和基本结构 vue 状态管理 二.状态管理的基本使用 vue 状态管理 三.Mutations和Getters用法 vue 状态管理 四.Action用法 ...

  3. <vue 组件 1、组件化基本使用>

    代码结构 组件就是将复杂的功能拆分成简单的块,拆分后的块可以被多处使用. 组件的使用分成三个步骤: 1.创建组件构造器     Vue.extend() 2.注册组件               Vu ...

  4. 【教你学Qt桌面端开发】pt1:浅谈Qt:特色C++主义类库

    还在为头脑简单看不懂代码而发愁吗?还在为思想浅薄只会人云亦云.拾人牙慧.鹦鹉学舌而遭人鄙夷吗? <教你写代码>,从另一维度解读代码,让你成为见解独特的黑马观众. 教你学Qt桌面端开发栏目旨 ...

  5. SIP没有摘机消息可以通话吗

    概述 SIP流程中,A路没有收到摘机的200 OK响应消息可以通话吗? 客户反馈的问题千奇百怪,公共互联网的问题同样百转千回,让你欲罢不能,头秃方休. 客户报故障,问题描述是这样的,我用号码A打给号码 ...

  6. C#设计模式01——单例模式的三种写法

    第一种 //在方法里new ,这里使用 双if-lock public class SingleFirst { private static SingleFirst _SingleFirst; pri ...

  7. python常见面试题讲解(五)质数因子

    题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 ) 最后一个数后面也要有空格 输入描述: 输入一个long型整数 输出描述 ...

  8. @Import 源码解析

    转发请注明出处: @Import通过快速导入的方式实现把实例加入spring的IOC容器中:一般@EnableXXX注解是通过@Import实现具体的功能(@EnableXXX注解上加个@Import ...

  9. 文心一言 VS 讯飞星火 VS chatgpt (183)-- 算法导论13.4 7题

    七.用go语言,假设用 RB-INSERT 将一个结点 x 插入一棵红黑树,紧接着又用 RB-DELETE 将它从树中删除.结果的红黑树与初始的红黑树是否一样?证明你的答案. 文心一言: 首先,我们需 ...

  10. 使用Java分析器优化代码性能,解决OOM问题

    有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 背景 最近我一直在做性能优化,对一个单机应用做性能优化.主要是 ...