跳至内容

模糊数据

一个 方框模糊 实现,用于 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

示例 · 源代码 · 通过对给定radius(一个非负数)的移动平均变换(方框滤波器)应用三次迭代来模糊data数组,以快速逼近高斯核。返回给定的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)的垂直模糊来模糊给定widthheight的矩阵。矩阵值data存储在一个扁平(一维)数组中。如果未指定height,则会从给定的widthdata.length推断出来。返回模糊后的矩阵{data, width, height}。

blurImage(imageData, rx, ry)

js
const imageData = context.getImageData(0, 0, width, height);
d3.blurImage(imageData, 5);

示例 · 源代码 · 模糊给定的 ImageData,通过应用半径为rx的水平模糊和半径为ry(默认为rx)的垂直模糊来独立地模糊每个RGBA层。返回模糊后的ImageData。