我是osgEarth的用户(用于渲染3D地形的库),我想使用GLSL(着色器)代码对某些特定图像进行直方图均衡(非常白,需要均衡)。
如何在GLSL中做到这一点。
提前谢谢。
答案 0 :(得分:2)
我找到了解决问题的方法,不是使用直方图均衡,而是使用线性拉伸,这里是GLSL代码的示例:
varying vec4 oe_layer_texc;
uniform sampler2D oe_layer_tex;
float NMIN = 0.0;
float NMAX = 65535.0;
float OMIN = 238.0;
float OMAX = 557.0;
float space = ( NMAX - NMIN ) / ( OMAX - OMIN ) ;
float bins = ( OMAX - OMIN );
vec4 srcPixel =texture2D(oe_layer_tex, oe_layer_texc.st);
float value = srcPixel.x * 65535.0 - OMIN;
color.rgb = vec3(( NMIN + ( value * space ))/65535.0);
</glsl>