OpenCV – 将图像保存在数据库nodejs中
我会很感激,如果有人可以帮我解决这个问题:我使用opencv与nodejs( https://github.com/TanaseButcaru/node-opencv )
我有一组照片,我喜欢用opencv readImage函数读取这些照片,然后将其保存在数据库中。
photos.map(async(photo) => { cv.readImage(`${__dirname}/${photo}`, function (error, matrix) { //insert in DB}
你知道如何保存这个“matrix”在数据库中,然后用它来检索图像并比较它(图片相似性)?
我不确定哪些选项是在node-opencv中实现的,但是:
-
您可以获取matrix的未压缩原始二进制数据,并将其作为JSON格式的数组存储(假设您使用可以以JSON格式存储或序列化数据的数据库,如mongodb)
-
使用OpenCV中的imcodec模块以base64格式对图像进行编码,基本上可以存储为一个string。 但是,根据编解码器,您可能会失去图像质量,所以我会推荐png。
你也可以看看: https : //github.com/justadudewhohacks/opencv4nodejs ,它实现了两个选项。 或者,至less如何将Mat序列化为JSON数组或节点缓冲区可以帮助您解决问题。