初学CUDA练练手用的。。。
找了张3264×2448的BMP,在Quadro FX5800(GT200核心)上跑花了1.73ms,在Geforce 9400M上跑花了74.2ms。
CPU实现的方法(用下面的代码VS2005编译),同样大小的图像在QX6600(2.4GHz)上花了42.6ms。
for(y = 0; y < h; y ++)
for(x = 0; x < w; x ++)
{
unsigned long offset = y * WIDTH + x;
b = in[offset * 3];
g = in[offset * 3 + 1];
r = in[offset * 3 + 2];
mi = min(r, min(g, b));
ma = max(r, max(g, b));
if(((unsigned short)ma + (unsigned short)mi) > THRESHOLD * 2)
out[offset] = 255;
else
out[offset] = 0;
}