如果有人可以帮我解决这个问题,我会非常感激: 我正在使用带有nodejs(https://github.com/TanaseButcaru/node-opencv)
的opencv我有一系列照片,我喜欢用opencv readImage函数读取这些照片,然后将其保存在数据库中。
photos.map(async(photo) => {
cv.readImage(`${__dirname}/${photo}`, function (error, matrix) { //insert in DB}
您知道如何在数据库中保存此“矩阵”,然后使用它来检索图像并进行比较(ImageSimilarity)?
答案 0 :(得分:2)
我不确定,哪些选项在node-opencv中实现,但是:
您可以获取矩阵的未压缩的原始二进制数据,并将其存储为JSON格式的数组(假设您使用的数据库可以存储或序列化JSON格式的数据,如mongodb)
使用OpenCV的imcodec模块对base64格式的图像进行编码,基本上可以存储为字符串。但是,根据编解码器,您可能会丢失图像质量,因此我建议使用png。
您还可以查看:https://github.com/justadudewhohacks/opencv4nodejs,它实现了这两个选项。或者至少有关如何将Mat序列化为JSON数组或节点缓冲区的示例可以帮助您解决问题。