__kernel void flashlight(__global unsigned char* in, __global unsigned char* out, int width, int height){ const int i = get_global_id(0); const int x = i % width; const int y = i / width; int x_grad = 0; for(int xgpic = -10; xgpic < 10; xgpic++) x_grad += abs(in[((x) + y*width) * 3 + 2] - in[((x+xgpic) + y*width) * 3 + 2]); int y_grad = 0; for(int ygpic = -10; ygpic < 10; ygpic++) y_grad += abs(in[((x) + y*width) * 3 + 2] - in[((x) + (y+ygpic)*width) * 3 + 2]); const int grad_val = (x_grad + y_grad); out[i*3] = in[i*3+0]; out[i*3+1] = in[i*3+1]; out[i*3+2] = grad_val < 255? grad_val:255; // out[i*3+1] = grad_val < 255? grad_val:255; // out[i*3+0] = grad_val < 255? grad_val:255; }