Imaging & Videochevron_right
Softwarechevron_right
Hardwarechevron_right
Aplicar una mascara de convolucion a una imagen usando una matriz "kernel" por Hardware.
1link> precision mediump float;
2link>
3link> uniform sampler2D texture;
4link>
5link> uniform vec2 texOffset;
6link>
7link> uniform float param;
8link>
9link> varying vec4 vVertexColor;
10link>
11link> varying vec2 vTexCoord;
12link>
13link> void main() {
14link>
15link> vec4 col0 = texture2D(texture, vTexCoord + vec2(-texOffset.s, -texOffset.t));
16link> vec4 col1 = texture2D(texture, vTexCoord + vec2(0.0, -texOffset.t));
17link> vec4 col2 = texture2D(texture, vTexCoord + vec2(+texOffset.s, -texOffset.t));
18link> vec4 col3 = texture2D(texture, vTexCoord + vec2(-texOffset.s, 0.0));
19link> vec4 col4 = texture2D(texture, vTexCoord + vec2(0.0, 0.0));
20link> vec4 col5 = texture2D(texture, vTexCoord + vec2(+texOffset.s, 0.0));
21link> vec4 col6 = texture2D(texture, vTexCoord + vec2(-texOffset.s, +texOffset.t));
22link> vec4 col7 = texture2D(texture, vTexCoord + vec2(0.0, +texOffset.t));
23link> vec4 col8 = texture2D(texture, vTexCoord + vec2(+texOffset.s, +texOffset.t));
24link> vec4 sum = param * col4 - (col0 + col1 + col2 + col3 + col5 + col6 + col7 + col8);
25link> gl_FragColor = vec4(vec3(sum), 1.0) * vVertexColor;
26link> }
Hacer click para correr el video.
1link> precision mediump float;
2link>
3link> uniform sampler2D texture;
4link>
5link> uniform vec2 texOffset;
6link>
7link> uniform float param;
8link>
9link> varying vec4 vVertexColor;
10link>
11link> varying vec2 vTexCoord;
12link>
13link> void main() {
14link>
15link> vec4 col0 = texture2D(texture, vTexCoord + vec2(-texOffset.s, -texOffset.t));
16link> vec4 col1 = texture2D(texture, vTexCoord + vec2(0.0, -texOffset.t));
17link> vec4 col2 = texture2D(texture, vTexCoord + vec2(+texOffset.s, -texOffset.t));
18link> vec4 col3 = texture2D(texture, vTexCoord + vec2(-texOffset.s, 0.0));
19link> vec4 col4 = texture2D(texture, vTexCoord + vec2(0.0, 0.0));
20link> vec4 col5 = texture2D(texture, vTexCoord + vec2(+texOffset.s, 0.0));
21link> vec4 col6 = texture2D(texture, vTexCoord + vec2(-texOffset.s, +texOffset.t));
22link> vec4 col7 = texture2D(texture, vTexCoord + vec2(0.0, +texOffset.t));
23link> vec4 col8 = texture2D(texture, vTexCoord + vec2(+texOffset.s, +texOffset.t));
24link> vec4 sum = param * col4 - (col0 + col1 + col2 + col3 + col5 + col6 + col7 + col8);
25link> gl_FragColor = vec4(vec3(sum), 1.0) * vVertexColor;
26link> }