AE (3)_主观亮度和对比度调试

2023-12-13 19:20

本文主要是介绍AE (3)_主观亮度和对比度调试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#灵感# 画面的亮度、对比度是最直接,观看者最先获得的感受。所以有必要花时间认真调整。

------哈哈,虽然调试的时间其实不如磨清晰度多。

目录

举个图例:

三个参数AE、gamma、LTM:

调试顺序:

举个图例:

看下面这张图,

第一眼一般是 “右边这张亮、左面那张暗”,

然后再观察,才会发现“右边绿草更嫩,树叶有一些红色的”

如果你再放大,才会继续发现“楼下的红车、前景的绿植轮廓”,说不定还发现一些噪声。

三个参数AE、gamma、LTM:

这三个参数段几乎是所有平台都会有的,主要的对亮度、对比度进行调节的参数。

AE 需要配置曝光表。主观调试 target,控制画面的曝光,使画面有个合适的亮度。

gamma 需要采集灰阶卡raw 图进行校准,虽然可以自行修改曲线,平台一般建议使用他们提供的默认曲线。 (比如sRGB对应的是Gamma0.45所在的空间。经过0.45幂运算,再由显示器经过2.2次幂输出,最后的颜色就和实际物理空间的一致了。)

左(Gamma0.45) 中(Gamma2.2) 右(线性物理空间)

gamma校正是指对sensor所捕获的亮度进行预调,属于一个全局像素的非线性映射。根据上图也可以看出,主要的作用区域在低、中亮度区域。所以客观校准前后是这样的:

客观的标准一般也是相邻两阶灰阶亮度差要大于8,并且这样的阶数要大于等于12阶/14阶。

-------------废话又说多了

LTM (local tone mapping ) 主要在主观调试阶段,手动根据当前效果进行调整。作用是使暗区或亮区的细节更加明显,令对比度增强。一般包括Dark 相关参数,控制暗部区域的提亮效果。一个strength 参数,控制LTM 整体强度。 一个bright 相关参数,抑制亮处区域的效果。比如:

调试顺序:

AE ——> gamma ——> LTM

先用AE 给画面配置一个基础的亮度,可以对着平坦区域(白墙、灰卡),调整target的值,使调试机和对比机的亮度差不多。再换一个有高亮区域的场景,观察高亮区域的过曝程度。如果对比机没有过曝,但是调试机过曝了,还是需要减小 AE target 值。下图灯光下的过曝,可以通过减小target值缩小过曝区域面积。

----------不建议一味的缩小过曝面积,画面中如果缺少高亮信息,通透性会不足,画面会显得灰暗。

基础亮度配置好后,在亮度变化丰富的实景场景,观察全局的亮度和对比度。

画面如果发灰、发暗,则需要调整gamma的global、contrast、或者微调gamma 节点的数值。亮处过暗则抬高亮部值(可能会略微放大过曝的光晕),暗处过亮则降低暗部数值,以拉大对比度,减弱发灰、发蒙。中部的数值控制场景中的主体亮度,如果没有明显亮度差异,可以不调整。gamma 调整的终点是在 AE target 上,使画面亮度、对比度更靠向对比机

如果提高了gamma 的强度,画面暗处亮度增加,导致画面整体有些发灰。比如下图右。则将这部分强度留在LTM 模块进行。使gamma 的调整维持一个较好的亮度、对比度。

建议是所有亮度下,统一用一条gamma 曲线,可以避免切换场景,亮度和对比度有跳跃变化。

LTM的主要作用是提高暗部亮度,增加画面中暗部区域的细节可见性。但缺点是,如果平台的算法不佳,对比度会有明显的损失。优点是调整的程度比较温和,根据index 可以适应多个场景,对gamma的调整效果进行补充。

这篇关于AE (3)_主观亮度和对比度调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/489642

相关文章

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

Python MCPInspector调试思路详解

《PythonMCPInspector调试思路详解》:本文主要介绍PythonMCPInspector调试思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录python-MCPInspector调试1-核心知识点2-思路整理1-核心思路2-核心代码3-参考网址

Linux系统调试之ltrace工具使用与调试过程

《Linux系统调试之ltrace工具使用与调试过程》:本文主要介绍Linux系统调试之ltrace工具使用与调试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、ltrace 定义与作用二、ltrace 工作原理1. 劫持进程的 PLT/GOT 表2. 重定

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误

使用C/C++调用libcurl调试消息的方式

《使用C/C++调用libcurl调试消息的方式》在使用C/C++调用libcurl进行HTTP请求时,有时我们需要查看请求的/应答消息的内容(包括请求头和请求体)以方便调试,libcurl提供了多种... 目录1. libcurl 调试工具简介2. 输出请求消息使用 CURLOPT_VERBOSE使用 C

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依