sRGB和伽马矫正
sRGB和伽马矫正
1. sRGB的含义:
- sRGB是一种色彩空间,全称为“标准红色-绿色-蓝色”(standard Red Green Blue)。
- 它由惠普和微软在1996年共同开发,用于确保不同设备上色彩的一致性。
在sRGB中,“s”代表“标准”(standard)。sRGB是一种色彩空间,全称为“标准红色绿色蓝色”(standard Red Green Blue)。它是由惠普和微软在1996年共同开发的,旨在为显示器、打印机以及其他计算机硬件设备提供一个通用的色彩标准。sRGB色彩空间被广泛应用于网页设计、数字摄影、视频编辑等领域,以确保在不同设备上色彩的一致性。
2.伽马矫正的原理和公式
伽马校正的原理基于人眼对亮度的非线性感知特性。人眼对暗部的变化更为敏感,而对亮部的变化相对不那么敏感。这意味着,为了在视觉上达到均匀的亮度变化,需要对图像的亮度信号进行非线性处理。
伽马校正的基本方式是将图像的亮度值按照一定的幂律(Power Law)函数进行转换。这个幂律函数通常表示为:
V o u t = V i n γ V_{out} = V_{in} ^ \gamma Vout=Vinγ
其中:
- Vout是校正后的输出亮度值。
- Vin 是原始的输入亮度值。
- γ是伽马值,决定了非线性转换的程度。
对于sRGB色彩空间,伽马值大约是2.2。这意味着,当对图像进行编码时,每个像素的亮度值会通过输入值的2.2次幂运算, 最后计算得到压缩,以存储更多的暗部细节。当这些图像在显示器上显示时,需要进行逆伽马校正,即通过
V o u t 1 2.2 V_{out}^{\frac{1}{2.2}} Vout2.21
对 Vout 进行逆伽马校正,其中伽马值为 2.2 的倒数,即 1/2.2。 的计算来扩展亮度值,以正确地呈现图像。
在实际应用中,伽马校正通常通过查找表(LUT)或数学函数在图像处理软件或显示设备中实现。这个过程对于确保图像在不同设备上的一致显示至关重要,尤其是在涉及数字图像处理、视频编辑和计算机图形学的领域。
有关LUT
- 预计算:LUT包含了一系列预先计算好的输入-输出值对。这些值对基于特定的映射函数,除了伽马校正函数, 还有其他函数
- 映射:当一个输入值需要被转换时,系统会查找LUT中对应的输出值。在伽马矫正中,输入的像素亮度值会通过LUT查找,找到对应的经过伽马矫正的输出值。
- 优化:使用LUT可以显著提高处理速度,因为查找操作通常比实时计算要快得多。
3.sRGB与伽马矫正的关系:
- sRGB色彩空间内置了大约2.2的伽马值。
- 在编码时,sRGB图像应用2.2的伽马值进行压缩;在显示时,进行逆伽马矫正以正确呈现图像。
伽马矫正是对图像或视频信号进行的一种调整,用于补偿显示设备(如计算机显示器)和人眼对亮度感知的不匹配。人眼对亮度的感知是非线性的,而显示设备(如CRT显示器)在显示图像时,其电子束强度与图像的亮度之间也是非线性关系。伽马矫正就是用来调整这种非线性,使得显示出来的图像亮度更符合人眼的感知。
sRGB色彩空间内置了一种特定的伽马值,大约为2.2。这意味着sRGB图像在编码时应用了2.2的伽马值,而在显示时需要进行逆伽马矫正,以正确地呈现图像。这种矫正确保了在不同的显示设备上,sRGB图像的色彩和亮度能够保持一致。
简而言之,sRGB和伽马矫正的关系在于,sRGB定义了一种包含特定伽马值的色彩空间,而伽马矫正是为了在显示sRGB图像时,能够正确地呈现出图像的色彩和亮度。
4.具体案例:
-
假设一个像素的亮度值为
V i n = 0.5 V_{in} = 0.5 Vin=0.5
使用伽马值
γ = 2.2 \gamma = 2.2 γ=2.2
进行校正, 经过计算的到校正后的值约为0.218
V o u t = V i n γ V o u t ≈ 0.218 V_{out} = V_{in} ^ \gamma \\ V_{out} \approx 0.218 Vout=VinγVout≈0.218通过手算演示了伽马校正如何压缩亮度值,有助于在有限的色彩深度内存储更多的暗部细节。
相关文章:
sRGB和伽马矫正
sRGB和伽马矫正 1. sRGB的含义: sRGB是一种色彩空间,全称为“标准红色-绿色-蓝色”(standard Red Green Blue)。它由惠普和微软在1996年共同开发,用于确保不同设备上色彩的一致性。 在sRGB中,“s”代表“…...
Summer School science communication project--Laptop Selection Suggestion
目录 Introduction Audiance Usage CPU What is a central processing unit (CPU) Notable makers of CPUs GPU Graphics Card: GPU The classifications of graphics cards The brands of graphics cards Dedicated Graphics Cards GeForce MX Series: GeForc…...
网络编程概念详解模拟回显客户端服务器
目录 1.网络中重要的概念 1)IP地址: 2)端口号: 3)协议 协议分层 OSI七层模型(教科书) TCP/IP五层模型 封装和分用 网络套接字 面试题:TCP/UDP的区别? UDP数据报套接字编程 模拟一个回…...
代码随想录第二十四天|动态规划(8)
目录 LeetCode 300. 最长递增子序列 LeetCode 674. 最长连续递增序列 LeetCode 718. 最长重复子数组 LeetCode 1143. 最长公共子序列 LeetCode 1035. 不相交的钱 LeetCode 53. 最大子序和 LeetCode 392. 判断子序列 总结 LeetCode 300. 最长递增子序列 题目链接&#…...
编程-设计模式 3:单例模式
设计模式 3:单例模式 定义与目的 定义:单例模式确保一个类只有一个实例,并提供一个全局访问点来访问该实例。目的:这种模式通常用于那些需要频繁访问且只需一个实例的对象,例如配置管理器、日志记录器等。 实现示例…...
Kaniko 构建 Docker 镜像
Kaniko 主要用于构建 Docker 镜像,而不是运行程序。它的主要用途是从 Dockerfile 构建容器镜像,但它并不负责运行容器或程序。以下是 Kaniko 的主要功能和局限性: 主要功能 构建镜像:Kaniko 从 Dockerfile 构建容器镜像。它通过…...
Javascript常见算法(每日两个)
合并两个有序链表 在JavaScript中,合并两个有序链表通常指的是将两个已经按照某种顺序(如升序或降序)排列的链表合并成一个新的有序链表。由于JavaScript本身不直接支持链表数据结构,我们通常会用对象或数组来模拟链表的行为。但…...
Spring -- 事务
Spring中事务的操作分为两类:(1)编程式事务 – 手动写代码操作事务(2)声明式事务 – 利用注解开启事务和提交事务 1. 编程式事务 准备Controller RestController RequestMapping("/user") public class UserInfoController {Autowiredprivate UserInfoService use…...
生命密码的破译者:AI如何学会读懂DNA语言?
引言 如果能像解读一本神秘的书籍那样,理解DNA的“语言”,将是多么令人兴奋的科学突破!如今,这正在逐步变为现实。科学家们训练出的AI模型GROVER正如一个勤奋的学生,学习着DNA的每一个“单词”和“语法”,…...
大数据信用报告查询哪家平台的比较好?
相信在搜索大数据信用的你,已经因为大数据信用不好受到了挫折,想详细了解一下自己的大数据信用,但是找遍了网络上的平台之后才发现,很多平台都只提供查询服务,想要找一个专业的平台查询和讲解很困难。下面本文就为大家…...
Java高级Day24-集合最后补充
75.HashTable 基本介绍: 存放元素的健值对 即K-V hashtable的键和值都不能为null,否则会抛出NullPointerException hashtable使用方法基本上和HashMap一样 hashtable是线程安全的,hashmap是线程不安全 扩容机制: 底层有数组…...
C++入门:C语言到C++的过渡
前言:C——为弥补C缺陷而生的语言 C起源于 1979 年,当时 Bjarne Stroustrup 在贝尔实验室工作,面对复杂软件开发任务,他感到 C 语言在表达能力、可维护性和可扩展性方面存在不足。 1983 年,Bjarne Stroustrup 在 C 语言…...
了解MVCC
概念 MVCC,全称Multi-Version Concurrency Control,即多版本并发控制,是一种并发控制的方法,维护一个数据的多个版本,使得读写操作没有冲突,快照读为MySQL实现MVCC提供了一个非阻塞读功能。MVCC的具体实现…...
WPF自定义控件的应用(DynamicResource的使用方法)
1 DynamicResource的使用方法 可以在字典文件 的抬头区写入数: <SolidColorBrush x:Key"PrimaryBackgroundColor" Color"#FFABAdB3"/><SolidColorBrush x:Key"TextBox.MouseOver.Border" Color"#FF7EB4EA"/>&l…...
Postgresql数据库密码忘记的解决
当您忘记PostgreSQL数据库的密码时,可以通过以下步骤来重置密码。这些步骤在Windows和Linux操作系统上大体相同,但具体操作路径和命令可能有所不同。 步骤一:找到并修改pg_hba.conf文件 定位安装目录: Windows:通常在PostgreSQL的安装目录下的data文件夹中。Linux:位置可…...
Flink SQL 基础操作
Flink SQL是建立在Apache Flink之上的SQL处理引擎,它允许用户以SQL的方式处理流数据和批数据。以下是一些Flink SQL的基础操作: 一、环境准备 1.启动flink集群 ./start-cluster.sh启动sql-client ./sql-client.sh二、数据源定义 创建表(…...
海思AE模块Lines_per_500ms参数的意义
基础知识 1秒(S)1000毫秒(ms)1000_000微妙(s)1000_000_000纳秒(ns) 1GHz1000Mhz1000_000KHz1000_000_000Hz 1Hz1/s 抗频闪原理 海思AE模块参数中有一个LinesPer500ms的参数,意思为500ms对应的曝光行数。此个参数和抗频闪有关。 我们知道: 50HZ…...
【代码随想录】区间和——前缀和方法
本博文为《代码随想录》学习笔记,原文链接:代码随想录 题目 原题链接:58. 区间和(第九期模拟笔试) 题目描述 给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。 输入描述 第一行输入为…...
Bug 解决 | 前端项目无法正确安装依赖?
目录 1、网络问题 2、权限问题 3、版本冲突 4、缓存问题 5、依赖配置错误 6、系统环境问题 前端项目和后端项目一样,都需要用到很多第三方的类库依赖。目前基本上我们主流的前端项目都使用 Npm、Yarn 等包管理工具来管理项目依赖,正常情况下通过执…...
【mysql 第四篇章】bin log 的作用是啥呢?
一、redo Log 介绍 redo log 是一种偏向物理性质的重做日志,因为他里面记录类似的这样的东西,“对那个数据也中的什么记录,做了个什么修改”。它是 InnoDB 存储引擎特有的东西。 二、bin Log 日志 bin log 叫做归档日志,它里面…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
ArcPy扩展模块的使用(3)
管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如,可以更新、修复或替换图层数据源,修改图层的符号系统,甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…...
数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)
目录 🔍 若用递归计算每一项,会发生什么? Horners Rule(霍纳法则) 第一步:我们从最原始的泰勒公式出发 第二步:从形式上重新观察展开式 🌟 第三步:引出霍纳法则&…...
字符串哈希+KMP
P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...
Linux操作系统共享Windows操作系统的文件
目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项,设置文件夹共享为总是启用,点击添加,可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download(这是我共享的文件夹)&…...
