589
社区成员




void getSqare(Mat frame)
{
int dimBlock=512;
int dimGrid=2;
//dim3 dimGrid(frame.rows*frame.cols/256);
size_t memSize = frame.step * frame.rows;
uchar3* d_src = NULL;
cudaMalloc((void**)&d_src, memSize);
cudaMemcpy(d_src, frame.data, memSize, cudaMemcpyHostToDevice);
cacul_sqare_kernel<<<dimGrid,dimBlock>>>(d_src,frame.cols,frame.rows);
cudaMemcpy(frame.data, d_src, memSize, cudaMemcpyDeviceToHost);
}
__global__ void cacul_sqare_kernel(uchar3* drc,int width,int height)
{
int i = threadIdx.x + blockIdx.x * blockDim.x;
if(i>width*height)return;
//int y = threadIdx.y + blockIdx.y * blockDim.y;
//drc[i].x= (int)(pow((float)drc[i].x,2)/255);
//drc[i].y= (int)(pow((float)drc[i].y,2)/255);
//drc[i].z= (int)(pow((float)drc[i].z,2)/255);
drc[i].x= 0;
drc[i].y= 0;
drc[i].z= 255;
}