HDR

Posted toomanywaytobe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDR相关的知识,希望对你有一定的参考价值。

  原始图像

  技术分享图片

  处理后

  技术分享图片

  逻辑

  提取图像中超过你需要的亮度的像素,根据曝光函数曲线图,让亮的更亮,暗的更暗

  简易曝光函数 f = -4*gray^2+5*gray;

  核心代码

  

 1 #version 330 core
 2 out vec4 FragColor;
 3 
 4 in vec2 TexCoords;
 5 
 6 uniform sampler2D screenTexture;
 7 uniform sampler2D textrue0;
 8 
 9 vec4 expose(vec4 col, float gray, float k)
10 {
11     float a = 4.0 * k - 1.0;
12     float b = 2.0 - 4.0 * k;
13     float result = gray * gray * b + gray * a;    //求取曝光参数
14 
15     return result * col;
16 }
17 
18 void main()
19 {
20     vec4 col = texture(screenTexture, TexCoords);
21     vec4 col2 = texture(textrue0, TexCoords);
22     float gray = 0.3 * col.r + 0.59 * col.g + 0.11 * col.b; //获取亮度值(灰度)
23     FragColor = expose(col2, gray, 1.5);    
24 }

 

以上是关于HDR的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV3.0 HDR(高动态范围)示例代码以及用法

使用 Jet Oledb 读取文本文件并关闭标题 (HDR=No)

HDR

Three.js HDRCubeTextureLoader 基于多个HDR文件的场景渲染思路

如何在本机摄像机中实现HDR设置?

毕业设计/Matlab系列基于最小二乘滤波WLS和快速双边滤波显示HDR图像