像素JavaScript的X邻居

时间:2017-12-17 09:39:56

标签: javascript image pixel

我正在使用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邻居必须在我的程序中手动编写位置。

由于

1 个答案:

答案 0 :(得分:1)

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]
}