东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2097|回复: 1
打印 上一主题 下一主题

[MXnet] 02、提取mxnet格式的图片数据的通用方法

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14429
QQ
跳转到指定楼层
楼主
发表于 2020-5-21 16:22:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式




# 提取mxnet格式的图片数据的通用方法
train_idx = "/home/dfy888/DataSets/faces_emore/train.idx"
train_rec = "/home/dfy888/DataSets/faces_emore/train.rec"
imgrec = mx.recordio.MXIndexedRecordIO(train_idx, train_rec, 'r')
# 0号索引放了 图片信息
img_info = imgrec.read_idx(0)
# unpack 打开信息
header, _ = mx.recordio.unpack(img_info)
print("0号索引放图片信息头:", header)
# 可以得到最大的id
max_idx = int(header.label[0])
print("最大=", max_idx)


# 随便取一个具体图片数据的索引
img_info = imgrec.read_idx(1000)
# unpack_img  打开图片
header, img = mx.recordio.unpack_img(img_info)
print("1000号索引放图片数据的信息头:", header)
label = int(header.label)
print("label是具体属于哪个人和 图片的类型:", label, type(img), img.shape)
# img = Image.fromarray(img)




0号索引放图片信息头: HEADER(flag=2, label=array([5822654., 5908396.], dtype=float32), id=0, id2=0)
最大= 5822654
1000号索引放图片数据的信息头: HEADER(flag=0, label=13.0, id=1000, id2=0)
label是具体属于哪个人和 图片的类型: 13 <class 'numpy.ndarray'> (112, 112, 3)





  1. train_idx = os.path.join(rec_path, "train.idx")
  2.     train_rec = os.path.join(rec_path, "train.rec")
  3.     # 正式读取mxnet个数的训练数据 : train.rec  train.idx
  4.     # 提取mxnet数据格式的通用方法
  5.     imgrec = mx.recordio.MXIndexedRecordIO(train_idx, train_rec, 'r')
  6.     # 0号索引放了 图片信息
  7.     img_info = imgrec.read_idx(0)
  8.     # unpack 打开信息
  9.     header, _ = mx.recordio.unpack(img_info)
  10.     # 可以得到最大的id
  11.     max_idx = int(header.label[0])
  12.     for idx in tqdm(range(1, max_idx)):
  13.         # 索引从1开始
  14.         img_info = imgrec.read_idx(idx)
  15.         # unpack_img  打开图片
  16.         header, img = mx.recordio.unpack_img(img_info)
  17.         label = int(header.label)
  18.         img = Image.fromarray(img)
  19.         # label_path = save_path / str(label)
  20.         # 这个label相对于 每个人的id 0 1 2 3 ... 同一个人会放同一个文件夹下
  21.         label_path = os.path.join(save_path, str(label))
  22.         os.makedirs(label_path, exist_ok=True)
  23.         img.save(label_path + '/{}.jpg'.format(idx), quality=95)
复制代码




让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

0

主题

100

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
沙发
发表于 2020-5-21 21:40:06 | 只看该作者
学到了学到了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-4-20 18:24 , Processed in 0.168846 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表