像素的 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]
}
我正在使用 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]
}