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