2017-12-17 15 views
0

JavaScript를 사용하여 이미지 처리를하고 있는데 픽셀의 x- 이웃을 결정하는 일반 수식이 있는지 알고 싶습니다.픽셀의 X- 이웃들 JavaScript

3 * 3 사각형의 경우 특정 x 및 y 픽셀을 사용하여 결정할 수있는 8 개의 이웃이 있음을 알고 있습니다.

(X-1, Y-1), (X-1, Y), (X-1, Y + 1),

(X, Y-1), (X, Y), (x + 1, y), (x + 1, y + 1), (x, y + 1),

문제는 내가 5 * 5 사각형, 7 * 7 사각형 및 9 * 9 사각형으로 작업하고 있으며 그 3 개의 사각형에서 픽셀의 x- 이웃을 모두 가질 수있는 방법이 있는지 궁금합니다. 프로그램에서 수동으로 위치를 쓰지 않아도됩니다.

감사

+0

그냥 2 for 루프를 사용할 수 없습니까? – putvande

답변

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] 
} 
+0

고마워요. 이걸 보니 이제 분명해 보입니다. – Thomas