图像处理中的亮度、曝光度和对比度滤镜详解
创作时间:
作者:
@小白创作中心
图像处理中的亮度、曝光度和对比度滤镜详解
引用
CSDN
1.
https://blog.csdn.net/h2282802627/article/details/114039152
在图像处理领域,调整图像的亮度、曝光度和对比度是常见的需求。本文将详细介绍这三种滤镜的原理和实现方法,帮助读者更好地理解和应用这些技术。
亮度滤镜(GPUImageBrightnessFilter)
亮度滤镜用于调节图像的整体亮度。其计算公式如下:
y = x + 255 ∗ b
其中:
- x 是调节前的像素值
- y 是调节后的像素值
- b 是调节参数
具体实现代码如下:
vec3 col = texture(iChannel0,uv).rgb;
float brightness = 0.5;
col += vec3(brightness);
fragColor = vec4(col, 1.);
下面是不同亮度参数的效果展示:
曝光度滤镜(GPUImageExposureFilter)
曝光度滤镜用于调节图像的曝光程度。曝光值(EV)的计算公式如下:
EV = log2(N^2/t)
其中:
- N 是光圈值
- t 是曝光时间(秒)
在GPUImage中,曝光值与图像呈现效果呈线性关系。具体实现代码如下:
const float exposure = 1.;
vec2 uv = fragCoord/iResolution.xy;
vec4 col = texture(iChannel0,uv);
col.rgb = col.rgb * pow(2.,exposure);
fragColor = vec4(col.rgb,1.0);
下面是不同曝光度参数的效果展示:
对比度滤镜(GPUImageContrastFilter)
对比度滤镜用于调节图像的亮暗区域层次感。其计算公式如下:
y = [ x − 127.5 ∗ ( 1 − b ) ] ∗ k + 127.5 ∗ ( 1 + b )
其中:
- x 是调节前的像素值
- y 是调节后的像素值
- b 的取值范围是[-1, 1],用于调节亮度
- k 用于调整对比度
具体实现代码如下:
vec3 col = texture(iChannel0,uv).rgb;
float contrast = 0.2;
col = (col.rgb - vec3(.5)) * contrast + vec3(.5);
fragColor = vec4(col, 1.);
下面是不同对比度参数的效果展示:
热门推荐
抚琴成一快-琶音
“衰兰送客咸阳道,天若有情天亦老”的意思及全诗翻译赏析
泡利不相容原理:揭秘电子世界的秩序法则
广州圣心大教堂,不输法国巴黎圣母院,中国最值得看的百年老教堂
晚上起夜一次怎么调理
揭秘信创信息安全工程师的必备技能!
面试前一天需要做的准备
民法中的利害关系人:理解与保护
POS机刷ka卡显示无效终端,原因分析与解决办法
不授予专利权的主题:一份全面的分析
挖掘专项贷款落地后的投资机会
沈冬梅新书开启“宋茶文化”的历史之旅
预防出生缺陷日 | 补充叶酸预防畸形!专家:孕前三个月就要补
脑瘤是如何产生的?
单相电机加大速比起动,提高单相电机起动速度的方法
商品房墙面出现裂纹怎么办?一文详解处理方案与维权指南
月季黄叶、没花苞,雨天施肥等,当下最常见的6大问题一次讲清楚
磁共振血管造影剂是什么
降压药可能引起眼睛浮肿?这份用药指南请收好
灵魂就业人员交社保全部是自己掏钱,为什么要把60%统筹呢?
买车分期贷款:如何查看和解读个人征信记录?
大理寺少卿的主要职责有哪些?
福彩站里的这些话,您留意到了吗?
10个宝藏女性播客推荐,那些努力上桌的女性
上班7天喝的都是蚂蚁泡澡水?饮水机卫生问题频出,教你4步喝到健康水!
《绝区零》成为桶之贤者的技巧与规则全攻略
sao2医学上是什么意思?了解血氧饱和度的含义与作用
春天的象征和意义
嘴馋说明体内缺什么
浪涌保护器参数详解:最大持续工作电压+冲击电流能力等