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中实现的,但是:

  1. 您可以获取matrix的未压缩原始二进制数据,并将其作为JSON格式的数组存储(假设您使用可以以JSON格式存储或序列化数据的数据库,如mongodb)

  2. 使用OpenCV中的imcodec模块以base64格式对图像进行编码,基本上可以存储为一个string。 但是,根据编解码器,您可能会失去图像质量,所以我会推荐png。

你也可以看看: https : //github.com/justadudewhohacks/opencv4nodejs ,它实现了两个选项。 或者,至less如何将Mat序列化为JSON数组或节点缓冲区可以帮助您解决问题。