我问我的问题如何以 不同的方式在 jocl 中使用 t_sampler 了解像素颜色
const sampler_t smp = CLK_NORMALIZED_COORDS_FALSE | //Natural coordinates
CLK_ADDRESS_CLAMP | //Clamp to zeros
CLK_FILTER_NEAREST; //Don't interpolate
然后我用
int2 coord = (int2)(get_global_id(0), get_global_id(1));
float4 pixel = read_imageui(input, smp, coord);
我的问题是:如何使用值像素来知道相关像素的颜色?
几天后我被困住了,我尝试了很多解决方案来解决这个问题,如果您需要任何澄清,我会回复。这是我的内核代码
const sampler_t smp = CLK_NORMALIZED_COORDS_FALSE | //Natural coordinates
CLK_ADDRESS_CLAMP | //Clamp to zeros
CLK_FILTER_NEAREST; //Don't interpolate
__kernel void basic(__read_only image2d_t input,__global float *result)
{
int gidX = get_global_id(0);
int gidY = get_global_id(1);
int2 coord = (int2)(get_global_id(0), get_global_id(1));
int2 posIn = {gidX, gidY};
float4 pixel = read_imagef(input, smp, posIn);
if ((pixel.x==0.0) && (pixel.y==0.0) && (pixel.z==0.0) ){
result[gidX]=1;
} else result[gidX]=0;
}