【问题标题】:X-neighbors of a pixel JavaScript像素 JavaScript 的 X 邻居
【发布时间】:2017-12-17 17:59:58
【问题描述】:

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

谢谢

【问题讨论】:

  • 不能只使用 2 个 for 循环吗?

标签: javascript image pixel


【解决方案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]
}

【讨论】:

  • 谢谢伙计,现在我看到了这似乎很明显
猜你喜欢
  • 1970-01-01
  • 2014-02-26
  • 2013-01-24
  • 2013-02-02
  • 1970-01-01
  • 1970-01-01
  • 2014-02-05
  • 2020-01-29
  • 1970-01-01
相关资源
最近更新 更多