0

我将解码后的图像保存为 RGBA,并将像素存储到类型的缓冲区中:

unsigned char *data1;

我有另一个缓冲区(相同大小 480x720),包含另一组 RGBA 数据。

unsigned char *data2;

如何使用 OpenGL 对这两个缓冲区进行逐点乘法

例如:如果 data1 和 data2 是:
data1 = (a0,a1,a2,a3,a4,...)

数据2 = (b0,b1,b2,b3,b4,...)

那么如何使用OpenGL来做到以下几点呢?

数据1*数据2 = (a0*b0,a1*b1,a2*b2,a3*b3,a4*b4,...)

是否可以使用 OpenGL 执行此操作?

4

2 回答 2

1

我不是一个重度 openGL 用户,所以我不能谈论它可以做什么和不能做什么,但我可能会建议您查看 OpenCV 以了解您想要实现的目标。有很多使用 OpenCV 的预制瞳孔跟踪示例,并且有一些非常好的指南可以在 Beagleboard 和 Rasp Pi 等嵌入式设备上编译 openCV。

我认为openGL是一种绘图工具,而openCV是一种处理工具。

openCV 带有已定义的矩阵类型,以及您想要执行的许多矩阵运算。

http://opencv.willowgarage.com/wiki/

于 2013-03-04T19:53:07.340 回答
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);
于 2013-03-04T20:00:02.217 回答