我在尝试将图像转换为CvMat
时遇到此错误:
错误:Imencode-预期arg 0为Uint8值的缓冲区
这似乎很容易修复,尽管我不知道如何将图像转换为Uint8Array
,这正是该功能所要求的。到目前为止,这是我的代码:
request(url, function (error, response, body) {
let uint8Array = new Uint8Array(body);
let imageCvMat = cv.imdecode(uintArray)
})
答案 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);
});