1
我有以下簡單的模糊算法:使模糊算法適用於畫布圖像數據?
for (y = 0; y < height; ++y) {
for (x = 0; x < width; ++x) {
total = 0
for (ky = -radius; ky <= radius; ++ky)
for (kx = -radius; kx <= radius; ++kx)
total += source(x + kx, y + ky)
dest(x, y) = total/(radius * 2 + 1)^2
}
}
,我需要做這項工作有一個數組,由帆布getImageData產生的()。問題是來自畫布的數組是一維的,並且該算法需要二維的算法,因爲「kx」和「ky」是距離當前像素的距離,並且在二維數組中,您只需更改其中一個索引爲了在網格上向左或向右移動,但是在一維數組中(它試圖表示一個二維模型),你不能那樣做。
您怎麼看,我該如何處理這個問題?在我看來,整個問題就在這裏:
total += source(x + kx, y + ky)
此行需要得到一維數組正確的像素,它應該工作的罰款。
P.S.我忘了說,我想在一個時間模糊圖像一個通道,這樣的:
for (var i=0; i<imgData.data.length; i+=4) {
red[index] = imgData.data[i];
green[index] = imgData.data[i+1];
blue[index] = imgData.data[i+2];
index++;
}
,我路過的每個陣列(紅,綠,藍)單獨的算法。
謝謝!讓我們看看它是否有效。 – 2012-01-02 14:57:11