h5用python_Python H5图片读写,pythonh5

问题描述:  由于存储的是不同大小的图片:直接使用 h5 存储, 报错如下:

TypeError: Object dtype dtype(‘O’) has no native HDF5 equivalent

问题原因:

h5 无法统一处理不同shape 的数据。应对这种情况,有两种方法:

1、散装:

将相同维度的数据放在同一个dataset中,即把原始数据拆分成多个dataset存储。

PS: 我自己有多少图片,新建了多少个dataset:

code:

数据写入:

import h5py

f = h5py.File(self.root_dir + "/data/"+data_set +'_dataset.h5', 'w')

.......

for i  in range(len(train_img_list)):

f[ 'train' + str(i) ] = train_img_list[i]

数据读出:

fd = h5py.File(self.root_dir + "/data/" + data_set + '_dataset.h5', 'r')

for k , i in enumerate(filename):

self._roidb.append(i.split()[0])

self.scores.append(float(i.split()[1]))

self.img_data.append(fd['train' +str(k)].value)

2、统装:

数据写入:

# Create a new file

f = h5py.File('data.h5', 'w')

f.create_dataset('X_train', data=Train_image)

f.create_dataset('y_train', data=Train_label)

f.create_dataset('X_test', data=Test_image)

f.create_dataset('y_test', data=Test_label)

f.close()

数据读出:

# Load hdf5 dataset

train_dataset = h5py.File('data.h5', 'r')

train_set_x_orig = np.array(train_dataset['X_train'][:]) # your train set features

train_set_y_orig = np.array(train_dataset['y_train'][:]) # your train set labels

test_set_x_orig = np.array(train_dataset['X_test'][:]) # your train set features

test_set_y_orig = np.array(train_dataset['y_test'][:]) # your train set labels

f.close()

参考链接:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GOSAT(Greenhouse gases Observing SATellite)的HDF5文件包含了大量的科学数据,包括卫星观测到的地球大气中的温室气体浓度等。如果要将HDF5文件转换为图片,需要使用一些科学数据可视化的工具。 以下是一些可能有用的工具: 1. HDFView: HDFView是HDF Group发布的一款免费的HDF5文件查看器。它可以让用户浏览、编辑和分析HDF5文件,包括将数据导出为图像文件。您可以通过HDFView的File->Export As菜单选项将数据导出为PNG、JPEG、GIF、BMP等格式的图像文件。 2. Panoply: Panoply是一个科学数据可视化工具,可以用于浏览、分析和导出HDF、netCDF和GRIB格式的数据。它可以让您将数据导出为PNG、JPEG、TIFF等图像文件格式,同时还支持动画、交互式3D图形等高级可视化功能。 3. Python: 如果您熟悉Python编程语言,可以使用Python中的h5py和matplotlib库来读取和可视化HDF5文件中的数据h5py是一个Python接口,可以让您在Python中读取和写入HDF5文件,而matplotlib是一个用于绘制图形的Python库,可以让您将数据导出为图像文件。您可以使用以下代码片段来读取和可视化HDF5文件中的数据: ``` python import h5py import matplotlib.pyplot as plt # 读取HDF5文件中的数据 with h5py.File('gosat_data.h5', 'r') as f: data = f['/path/to/data'].value # 可视化数据并将其保为PNG文件 plt.imshow(data) plt.savefig('gosat_data.png') ``` 以上是一些可供参考的方法,具体实现方式可能因数据类型、数据大小、数据维度等因素而异,建议根据具体情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值