function canvasMedian(canvases) {
const width = canvases[0].width;
const height = canvases[0].height;
const imageDatas = canvases.map(
canvas => canvas.getContext('2d').getImageData(0, 0, width, height).data
);
const medianImageData = new ImageData(width, height);
const arr = new Uint8ClampedArray(imageDatas.length);
for (let i = 0; i < medianImageData.data.length; i += 1) {
for (let j = 0; j < imageDatas.length; j += 1) {
arr[j] = imageDatas[j][i];
}
medianImageData.data[i] = median(arr);
}
const medianCanvas = html`<canvas width="${width}" height="${height}"></canvas>`;
medianCanvas.getContext('2d').putImageData(medianImageData, 0, 0);
return medianCanvas;
}