Javascript 像素的X邻域

Javascript 像素的X邻域,javascript,image,pixel,Javascript,Image,Pixel,我正在使用JavaScript进行图像处理,我想让您知道是否有任何通用公式来确定像素的x邻域 我知道,对于一个3*3的正方形,有8个邻居可以使用特定的x和y像素来确定 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进行图像处理,我想让您知道是否有任何通用公式来确定像素的x邻域

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

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

你不能用2来表示循环吗?谢谢,伙计,我现在看到了,这似乎很明显
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]
}