Anyou's picture
Upload 11 files
4a6e43e
raw
history blame
3.58 kB
import cv2
import h5py
import copy
import os
import random
import numpy
import numpy as np
from PIL import Image
def gettext(index):
with h5py.File('/root/lihui/StoryVisualization/pororo.h5', 'r') as h5:
story = list()
h5 = h5['test']
# 读取当前索引处的文本,并使用decode方法将其解码为UTF-8
texts = h5['text'][index].decode('utf-8').split('|')
symbol = '\n'
texts = symbol.join(texts)
texts = 'Story<' + str(index) + '> :' + '\n' + texts
print(texts)
return texts
# for i in range(1000):
# gettext(i)
# 截取前100的数据集
# ###正确的##############
# # import h5py
# # import numpy as np
# # from PIL import Image
# #
# #
# # # 创建名为“images”的子目录来保存图像
# # os.makedirs("train_images", exist_ok=True)
# #
# # 创建一个h5文件
# nf = h5py.File('/root/lihui/StoryVisualization/pororo_100.h5', "w")
# with h5py.File('/root/lihui/StoryVisualization/pororo.h5', 'r') as f:
# test_group = f['test']
# texts = np.array(test_group['text'][()])
# ngroup = nf.create_group('test')
# ntext = ngroup.create_dataset('text', (100,), dtype=h5py.string_dtype(encoding='utf-8'))
# for i in range(100):
# ntext[i]=texts[i]
# print(f"样本 {i}:")
# # for j in range(5):
# # # 创建一个固定的文件名来保存图像
# # # filename = os.path.join("images", f"image_{i}_{j}.png")
# # # # 将HDF5文件中的图像数据保存到文件中
# # # with open(filename, "wb") as img_file:
# # # img_file.write(test_group[f'image{j}'][i])
# # # 打印文本信息和文件名
# # ntext[i]='|'.join(texts[i].decode('utf-8').split('|')[j])
# # print(f"图像{j}已保存到文件:{filename}")
# print(ntext[i])
# nf.close()
#保存测试集图像,随机截取视频帧
with h5py.File(r'C:\Users\zjlab\Desktop\StoryVisualization\pororo.h5', 'r') as h5:
h5 = h5['test']
for index in range(len(h5['text'])): #len(h5['text'])
# index = int(index + 1)
# print(index)
images = list()
for i in range(5):
# 从h5文件中读取一组图像和对应的文本。
im = h5['image{}'.format(i)][index]
# print(im)
# pil_img = Image.fromarray(im)
# # 保存图像
# pil_img.save(os.path.join('/root/lihui/StoryVisualization/ori_test_images', '{:04d}.png'.format(i)))
# 对每个图像解码
im = cv2.imdecode(im, cv2.IMREAD_COLOR)
# 随机选择一个128像素的图像切片
idx = random.randint(0, im.shape[0] / 128 - 1)
# 将切片后的图像加到images列表中
images.append(im[idx * 128: (idx + 1) * 128])
# 深拷贝,后续不随images变化
# ori_images = copy.deepcopy(images)
# 保存test原始图像
# for i, im in enumerate(images):
# file_path = 'C:/Users/zjlab/Desktop/StoryVisualization/test_images/group{:02d}_image{:02d}.png'.format(
# index + 1,
# i + 1)
# cv2.imwrite(file_path, im)
ori_images_pil = Image.fromarray(images[i])#numpy.uint8(images[i].detach().cpu().squeeze().float().numpy())).convert("RGB")
ori_images_pil.save(
os.path.join('C:/Users/zjlab/Desktop/StoryVisualization/test_images',
'group{:02d}_image{:02d}.png'.format(index + 1,i + 1)))