私はこのfor
ループを持っています:
y1 = 0; y2 = 3264; x1 = 0; x2 = 4928; uc = 1; vc = 1; scale = 1;
for (var y = y1; y < y2; y++) {
for (var x = x1; x < x2; x++) {
sumR = 0;
sumG = 0;
sumB = 0;
i = 0;
for (var v = -vc; v <= vc; v++) {
for (var u = -uc; u <= uc; u++) {
if (kernel[i] != 0) {
var tempX = x + u < 0 ? 0 : x + u;
var tempY = y + v < 0 ? 0 : y + v;
tempX = tempX >= width ? width - 1 : tempX;
tempY = tempY >= height ? height - 1 : tempY;
sumR += pixels.data[((tempY * (pixels.width*4)) + (tempX * 4)) + 0] * kernel[i];
sumG += pixels.data[((tempY * (pixels.width*4)) + (tempX * 4)) + 1] * kernel[i];
sumB += pixels.data[((tempY * (pixels.width*4)) + (tempX * 4)) + 2] * kernel[i];
}
i++;
}
}
tempArray.push(sumR * scale, sumG * scale, sumB * scale, 255);
}
console.log(y + "|" + y2);
}
つまり、基本的には画像処理に関するもので、ループはエラーなしで y = 3115 で停止し、ループが計算されなかった後のすべてがそこで「クラッシュ」します。これがどのように起こるか考えていますか?メモリに問題がある可能性はありますか?
更新:私はこれを少し不明確にしたと思います:サイズ y2 = 1000 および x2 = 1000 の画像にこのアルゴリズムを使用すると、すべて正常に動作します。しかし、画像が大きくなると動作が停止するだけで、コンソールにエラーメッセージは表示されません!