我正在与CUDA合作进行图像处理,我对像素处理有疑问。
在应用m x m 卷积滤波器时,通常如何处理图像的边界像素?在3 x 3卷积核中,忽略图像的1像素边界更容易处理,特别是当代码被共享内存改进时。实际上,在这种情况下,不需要检查给定的像素是否具有所有可用的邻居(即coord (0, 0)上的像素没有左、左、上、上邻)。然而,删除原始图像的1像素边界会产生部分结果。与此相反,我希望处理图像中的所有像素,在使用共享内
为了做到这一点,我找到了边界像素。对于每个边界像素,我使用8邻域理论计算它的邻居。现在我正在计算一个点与它的唯一一个邻居的切线(取决于我如何选择顺时针或其他方式)。如果每个像素恰好有两个邻居,我的算法就可以很好地工作。对于以显示的形状(顺序为9 X 15像素)。
但是如果一个像素有两个以上的邻居,那么我的算法就会混乱。我想要取每个边界像素与其相邻像素的顺时针或逆时针方向的切线,如果您注意到第二张图像,这是有效的<em