像素的 X 邻居 JavaScript

X-neighbors of a pixel JavaScript

我正在使用 JavaScript 进行图像处理,我想知道是否有任何通用公式可以确定像素的 x 邻域。

我知道对于一个 3*3 的正方形,可以使用特定的 x 和 y 像素确定 8 个邻居。

(x-1,y-1) , (x-1,y) , (x-1,y+1),

(x,y-1) , (x,y) , (x,y+1),

(x+1,y-1) , (x+1,y) , (x+1,y+1).

问题是我正在处理 5*5 方块、7*7 方块和 9*9 方块,我想知道是否有任何方法可以从这三个方块中获得一个像素的所有 x 邻居无需在我的程序中手动写入位置的方块。

谢谢

var size = 5;
var d = Math.floor(size / 2);

for (var dx = -d; dx <= d; dx++) {
    for (var dy = -d; dy <= d; dy++) {
        if (dx || dy) {
             // Do something with (x + dx, y + dy)
        }
    }
}

如果您经常这样做(即对于图像中的每个像素),可能值得先创建一个平面值数组:

var size = 5;
var d = Math.floor(size / 2);
var dPixels = [];

for (var dx = -d; dx <= d; dx++) {
    for (var dy = -d; dy <= d; dy++) {
        if (dx || dy) {
             dPixels.push(dx, dy);
        }
    }
}

// Then for each pixel (x, y)
for (var i = 0; i < dPixels.length; i += 2){
     // Do something with x + dPixels[i], y + dPixels[i + 1]
}