{
const inputImage = await FileAttachment("image.png").image();
const filtered = Object.assign(DOM.canvas(inputImage.width, inputImage.height), { id: "filteredCanvas"} );
const gray = Object.assign(DOM.canvas(inputImage.width, inputImage.height), { id: "grayCanvas" });
const out = Object.assign(DOM.canvas(inputImage.width, inputImage.height), { id: "outCanvas" });
let src = cv.imread(inputImage);
let srcWidth = src.rows;
let srcHeight = src.cols;
let dst = cv.Mat.zeros(srcWidth, srcHeight, cv.CV_8UC3);
let ksize = new cv.Size(ks,ks);
cv.GaussianBlur(src, dst,ksize, sigmaX, sigmaY, cv.BORDER_DEFAULT);
cv.imshow(filtered, dst);
cv.imshow(out, src);
src.delete();
dst.delete();
const css = "max-width:100%";
inputImage.style.cssText += css;
out.style.cssText += css;
gray.style.cssText += css;
filtered.style.cssText += css;
return html`
<div style="display:flex;max-width:${width}px">
<div style="padding-right:10px", title="input">${inputImage}</div>
<div style="padding-right:10px", title="filtered">${filtered}</div>
<div style="padding-right:10px", title="gray">${gray}</div>
<div style="padding-right:10px", title="output">${out}</div>
`;
}