使用 python 从 mongodb 检索存储的图像

2023-12-27

from pymongo import MongoClient
from bson.objectid import ObjectId
import numpy as np
import gridfs 

import os,os.path
i=0
try:
    for file in os.listdir("/Users/sarthakgupta/Desktop/sae/Images"):
        if (file.endswith(".png") | file.endswith(".jpg")):
            filename = "/Users/sarthakgupta/Desktop/sae/Images/"+file
            datafile =  open(filename,"rb")
            thedata = datafile.read()
            datafile.close()


            c = MongoClient()
            i=i+1
            db = c.trial5
            fs = gridfs.GridFS(db)
            t = "class"+str(i)


            stored = fs.put(thedata,filename=q)

except IOError:
    print("Image file %s not found" %datafile)
    raise SystemExit

我将图像存储在 mongo db 中。现在我想通过文件名从数据库中检索这些图像,并将相同文件名的图像(或像素)存储在数组或列表中。假设如果有 2 个文件名为“class1”的图像,那么它们应该位于一个数组中。


创建您的fs像以前一样的变量,并且:

data = fs.get_last_version(filename).read()

您还可以查询文件列表,例如:

from bson import Regex
for f in fs.find({'filename': Regex(r'.*\.(png|jpg)')):
    data = f.read()

另外,关于您的代码的评论:为循环的每次迭代重新创建 MongoClient 和 GridFS 实例非常慢。在开始循环之前创建它们一次,然后重复使用它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 python 从 mongodb 检索存储的图像 的相关文章

随机推荐