我正在使用 CUDA 进行图像处理,但我对像素处理有疑问。
应用 m x m
时通常对图像的边界像素做了什么卷积过滤器?
在 3 x 3
卷积核,忽略 1
图像的像素边界更容易处理,尤其是当代码使用共享内存进行改进时。实际上,在这种情况下,不需要检查给定像素是否具有所有可用的邻域(即坐标 (0, 0)
上的像素尚未离开、左上、上邻)。但是,删除 1
原始图像的像素边界可能会产生部分结果。
与此相反,我想处理图像中的所有像素,也在使用共享内存改进时,例如,加载 16 x 16
像素,但计算内部 14 x 14
.同样在这种情况下,忽略边界像素会生成更清晰的代码。
在这种情况下通常会怎么做?
有没有人通常使用我的方法忽略边界像素?
当然,我知道答案取决于问题的类型,即按像素添加两个图像没有这个问题。
提前致谢。
最佳答案
处理边框效果的常用方法是根据您的过滤器大小用额外的行和列填充原始图像。填充值的一些常见选择是:
关于image-processing - 处理 CUDA 中的边界条件/Halo 区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5715220/