像素JavaScript的X邻居

问题描述 投票:0回答:1

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

谢谢

javascript image pixel
1个回答
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]
}
© www.soinside.com 2019 - 2024. All rights reserved.