如何在没有Caffe的情况下用python从LMDB加载图像?

2024-09-30 04:34:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从我创建的LMDB数据库加载图像和标签数据。我为相应的图像标签对分配一个唯一的键,并将它们添加到LMDB中(例如image-00000001,label-00000001)。在保存图像时,我使用image.tostring()将图像的numpy数组转换为字符串。现在,当加载LMDB时,我看到我可以非常简单地通过传递我生成的键来获得标签,但是图像数据以编码的方式显示。执行numpy.fromstring(lmdb_cursor.get('image-000000001'))操作无效。在

我看到here - the second answer, specifically, by @Ghilas BELHADJ必须使用Caffe数据对象首先加载数据,然后使用datum.data获取图像。但我没有这样的结构,图像和标签是用“数据”和“标签”标签来组织的。如何从python中的LMDB以numpy图像的形式正确地读回数据?在

在Lua中,这可以通过以下方式实现:

    local imgBin -- this is the object returned from cursor:get(image-id)
    local imageByteLen = string.len(imgBin)
    local imageBytes = torch.ByteTensor(imageByteLen):fill(0)
    imageBytes:storage():string(imgBin)
    local img = Image.decompress(imageBytes, 3, 'byte')
    img = Image.rgb2y(img)
    img = Image.scale(img, imgW, imgH)

我不知道如何在Python中实现这一点。在


Tags: the数据图像imagenumpylmdbimgget

热门问题