Anyou's picture
Upload 11 files
4a6e43e
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)))