当前位置: 首页 > ops >正文

动态范围调整(SEF算法实现)

一、背景介绍

        继续在整理对比度调整相关算法,发现一篇单帧动态范围提升的算法:Simulated Exposure Fusion,论文表现看起来很秀,这里尝试对它进行了下效果复现。

二、实现流程

1、基本原理

        整体来说,大致可以分为两步:

        a、将单帧输入图像拆分为多帧图像,每帧图像相对输入来说,只保留部分区域信息,并对这部分区域进行了动态范围拓展。

        b、对生成的多帧图像进行图像融合,得到最终结果图像,具体细节可以参考资料:杞朹:曝光融合(Exposure Fusion)

        由于融合部分复用了之前讲过的算法,因此我们这里重点只关注如何生成帧。

        在生成帧上,也分为两种情况:

                a、外部直接指定生成帧数量。

                b、算法内部自适应计算生成帧数量。

2、输入信息

        a、单帧图像输入,并将输入图转换到HSV空间,对V通道处理。

 

        b、三个输入参数:alpha, beta, lambda。

                其中lambda参考论文,可以直接设置为0.125。

3.1、图像拆分帧数(外部指定)

        beta可以控制生成帧数量:比如beta为0.25,那么设置生成帧数量M=1/beta=4。

3.2、图像拆分帧数(自适应生成)

        a、利用直方图统计信息,计算出来图像中值,根据图像中值来反映当前图像的整理亮暗层度。

        b、在后面帧序列生成上,我们可以知道,每个帧序列的有效像素范围为:

 

        因此,我们可以根据公式:

 

        找到序列帧之间,不存在有效像素公共区域的最大可拆帧数量,作为当前可生成帧的最大序列数量M。

        对应的伪代码实现为:

 

4、帧序列生成

        a、根据公式:

 

        对生成序列每一帧都进行简单亮度调整,得到调整后图像f。

        b、对生成序列每一帧,根据公式计算一个参数:

 

        c、当图像f像素值范围在:

 

        之间的时候,像素值保持不变。

否则像素值为:

 

        通过这种方式保证当前序列帧只关注原图像

 

        范围内的图像信息,并且保证和范围之外的像素信息过度平滑,避免出现明显截断。

        d、生成帧演示:每一帧序列可以用如下一条曲线表示实际包含的原图像素信息:

 

       部分实际序列帧效果:

 

三、效果对比

        左边为输入图,右边为结果图像:

 

四、复现代码

相关的matlab代码,可以参考:IPOL Journal · Simulated Exposure Fusion

我这边做了简单的c++版本复现:

ImageQualityEnhancement/ltm/sef at master · yulinghan/ImageQualityEnhancement · GitHub

http://www.xdnf.cn/news/6727.html

相关文章:

  • 在多个SpringBoot程序中./相对路径下隐患、文件覆盖问题
  • CSS- 2.1 实战之图文混排、表格、表单、学校官网一级导航栏
  • 基于51单片机和8X8点阵屏、矩阵按键的记忆类小游戏
  • C语言文件操作
  • 第八章 模板项目生成
  • Nextjs首屏加载速度性能从80分优化到98分
  • Qt控件:交互控件
  • PT2020 20触控I2C输出IC
  • 时频分析的应用—外部信号的显影和定点清除
  • 第三部分:内容安全(第十六章:网络型攻击防范技术、第十七章:反病毒、第十八章:入侵检测/防御系统(IDS/IPS))
  • 第J1周:ResNet-50算法实战与解析
  • C语言图案代码大全:从基础到高级
  • 院校机试刷题第四天:1911反转公约数、1702十六进制不进位加法
  • PR-2021
  • ADC深入——SNR、SFDR、ENOB等概念
  • 深入浅出拆分学习,图神经网络拆分学习,混合联邦学习
  • 网络攻防模拟:城市安全 “数字预演”
  • 14 C 语言浮点类型详解:类型精度、表示形式、字面量后缀、格式化输出、容差判断、存储机制
  • AlphaEvolve:基于Gemini的算法发现与优化综合报告
  • AI在线写作平台:AnKo引领未来创作新潮流!
  • 分析主流编程语言中哪些为支持面向对象的语言
  • 什么是实景VR?实景VR应用场景
  • 如何早期识别帕金森病?
  • 《图解 TCP/IP》笔记
  • 安科瑞DJSF1352-D直流电能表:破解充电桩计量难题
  • linux安装宝塔面板到数据盘
  • python Excel操作,将一个工作表中的sheet页复制到另一个工作表中(包括单元格的内容、样式、格式等)
  • 电动汽车直流快充充电桩AEV200-DC240M4的详细介绍
  • 防篡改小工具监测被该文件
  • 【GAN网络入门系列】一,手写字MINST图片生成