資料模糊化
針對 1D、2D 和 RGBA 影像的 方框模糊 實作;支援小數半徑。
blur(data, radius)
js
const numbers = d3.cumsum({length: 1000}, () => Math.random() - 0.5);
d3.blur(numbers, 5); // a smoothed random walk
範例 · 原始碼 · 原地模糊化 data 陣列,針對給定的 radius(非負數)套用三次回合的移動平均轉換(方框濾波器),以快速近似給定的高斯核。傳回給定的 data。
blur2({data, width, height}, rx, ry)
js
const matrix = {
width: 4,
height: 3,
data: [
1, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 1
]
};
d3.blur2(matrix, 1);
範例 · 原始碼 · 原地模糊給定寬度和高度的矩陣,方法是套用半徑為rx的水平模糊和半徑為ry(預設為rx)的垂直模糊。矩陣值資料儲存在平面(一維)陣列中。如果未指定高度,則會從給定的寬度和資料長度推論。傳回模糊的矩陣 {資料, 寬度, 高度}。
blurImage(影像資料, rx, ry)
js
const imageData = context.getImageData(0, 0, width, height);
d3.blurImage(imageData, 5);
範例 · 原始碼 · 原地模糊給定的影像資料,方法是獨立模糊每個 RGBA 圖層,套用半徑為rx的水平模糊和半徑為ry(預設為rx)的垂直模糊。傳回模糊的影像資料。