如何使用GLSL着色器进行直方图均衡化?
我是osgEarth(用于在3D中渲染地形的库)的用户,我想使用GLSL(着色器)代码为某些特定图像(非常白色,需要进行均衡)进行直方图均衡化 如何在GLSL中实现这一点如何使用GLSL着色器进行直方图均衡化?,glsl,shader,histogram,Glsl,Shader,Histogram,我是osgEarth(用于在3D中渲染地形的库)的用户,我想使用GLSL(着色器)代码为某些特定图像(非常白色,需要进行均衡)进行直方图均衡化 如何在GLSL中实现这一点 提前谢谢。我找到了解决问题的方法,不是使用直方图均衡,而是使用线性拉伸,以下是GLSL代码的示例: varying vec4 oe_layer_texc; uniform sampler2D oe_layer_tex; float NMIN = 0.0; float NMAX = 65535.0; float OMIN =
提前谢谢。我找到了解决问题的方法,不是使用直方图均衡,而是使用线性拉伸,以下是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>
可变矢量4 oe_层_texc;
均匀取样器2D oe_层_tex;
浮动NMIN=0.0;
浮动NMAX=65535.0;
浮点数OMIN=238.0;
浮动OMAX=557.0;
浮点空间=(NMAX-NMIN)/(OMAX-OMIN);
浮箱=(OMAX-OMIN);
vec4 srcPixel=texture2D(oe_layer_tex,oe_layer_texc.st);
浮点值=srcPixel.x*65535.0-OMIN;
color.rgb=vec3((NMIN+(值*空间))/65535.0);
您有可用的版本吗?以上这些好处似乎不起作用。此外,垃圾箱
不在任何地方使用。