我将解码后的图像保存为RGBA,并将像素存储到类型为
的缓冲区中unsigned char *data1;
我有另一个缓冲区(相同大小480x720),包含另一组RGBA数据。
unsigned char *data2;
如何使用OpenGL对这两个缓冲区进行逐点乘法
例如为:
如果data1和data2是:
data1 =(a0,a1,a2,a3,a4,...)
data2 =(b0,b1,b2,b3,b4,...)
然后如何使用OpenGL执行以下操作?
data1 * data2 =(a0 * b0,a1 * b1,a2 * b2,a3 * b3,a4 * b4,...)
是否可以使用OpenGL执行此操作?
答案 0 :(得分:1)
我不是一个沉重的openGL用户,所以我不能说它能做什么,不能做什么,但我可能会建议你看看你想要实现的OpenCV。使用OpenCV有很多可用的学生跟踪示例,并且有一些非常好的指南可以在嵌入式设备上编译openCV,如Beagleboard和Rasp Pi。
我认为openGL是一个绘图工具,openCV是一个处理工具。
openCV带有定义的矩阵类型,以及您想要做的许多矩阵运算。
答案 1 :(得分:0)
您可以使用的简单片段着色器:
in vec2 tex_coords;
uniform sampler2d texture_a, texture_b;
out vec4 my_color;
vec4 a = texture(texture_a, tex_coords);
vec4 b = texture(texture_b, tex_coords);
my_color = vec4(a.r * b.r, a.g * b.g, a.b * b.b, 1.0);