有人可以帮我解决如何遍历CUDA内核来平均Mat图像的角点像素,边界像素和/或中间像素的问题吗?
我知道对于中间像素,我应该这样做:
(src[threadIdx.x][ threadIdx.y] +
src[threadIdx.x -1][ threadIdx.y -1]+
src[threadIdx.x -1][ threadIdx.y]+
src[threadIdx.x -1][ threadIdx.y + 1]+
src[threadIdx.x][ threadIdx.y - 1]+
src[threadIdx.x][ threadIdx.y + 1]+
src[threadIdx.x +1][ threadIdx.y - 1]+
src[threadIdx.x + 1][ threadIdx.y]+
src[threadIdx.x+ 1][ threadIdx.y +1])/9.0;
正确? 角落或边框像素怎么样? 你如何处理边界?
答案 0 :(得分:1)
如果寻址模式符合您的要求,纹理硬件在处理角落和边界方面非常出色。
共享内存非常适合于促进模板中像素的重用 - 查看SDK中的sobelFilter示例程序,并将Sobel计算替换为您的计算。