在Node.js中将图像转换为Uint8Array

时间:2018-07-17 08:17:28

标签: node.js image http opencv request

我在尝试将图像转换为CvMat时遇到此错误:

  

错误:Imencode-预期arg 0为Uint8值的缓冲区

这似乎很容易修复,尽管我不知道如何将图像转换为Uint8Array,这正是该功能所要求的。到目前为止,这是我的代码:

request(url, function (error, response, body) {
    let uint8Array = new Uint8Array(body);
    let imageCvMat = cv.imdecode(uintArray)
})

2 个答案:

答案 0 :(得分:1)

我认为您是实施解决方案的opencv4nodejs。我想请您注意几个方面。

您可以在此处检查imdecode和imencode接受缓冲区作为输入 opencv4nodejs imdecode

所以基本上我也面临的问题是,您首先没有使用imdecode将图像转换为Mat。请检查您提供的输入并尝试对其进行修复。

答案 1 :(得分:0)

我最初的目标是能够将图像从URL传递到cv.imdecode()。事实证明,这样做的方法是使用Buffer,它的工作原理就像是一种魅力:

request(url, function (error, response, body) {
    let buffer = Buffer.from(body);
    let imageCvMat = cv.imdecode(buffer);
});