我正在尝试将sobel滤镜应用于我的图像以检测边缘。我不知道自己做得很好 - 但我正在尝试。
我尝试使用sharp(https://github.com/lovell/sharp)将convolve运算符添加到图像中,如下所示:
sharp(body)
.resize(1000)
.greyscale()
.convolve({
width: 3,
height: 3,
kernel: [-1, 0, 1, -2, 0, 2, -1, 0, 1]
})
.webp()
.toBuffer(function(err, buffer) {
res.end(buffer, 'binary');
});
当我添加.convolve()
操作时,我看不到任何图片返回。当我删除它时,我像往常一样得到图像。我正在做的文档似乎建议http://sharp.readthedocs.io/en/stable/api/
我做错了什么?
编辑:[Error: im_local_dmask: nonsense mask parameters]
console.log(err)
我得到的错误为res.end()
答案 0 :(得分:0)
原来问题是内核中的值添加到0
我需要添加
scale: 1
到内核对象,然后一切正常。不确定这是一个错误还是只是误导性的文档。参见:
https://github.com/lovell/sharp/issues/561
使用以下代码,一切正常:
sharp(body)
.resize(1000)
.greyscale()
.convolve({
width: 3,
height: 3,
kernel: [-1, 0, 1, -2, 0, 2, -1, 0, 1],
scale: 1
})
.webp()
.toBuffer(function(err, buffer) {
res.end(buffer, 'binary');
});