h5后缀文件python处理
文件的結(jié)構(gòu)為組+數(shù)據(jù)集
其中組可以是多級(jí)的,類似文件夾的目錄關(guān)系。
首先打開對(duì)應(yīng)文件:
// An highlighted block import h5py import numpy as np from PIL import Imageh5_file = "D:/GoProEvent/GOPRO/GOPRO/train/GOPR0372_07_00.h5" file = h5py.File(h5_file, "r") groups = [key for key in file.keys()] print("該文件共有以下幾組:", groups)輸出結(jié)果:
用file[‘group’]來“打開對(duì)應(yīng)目錄”
如果是多級(jí)group可以將相關(guān)信息打印出來查看:
輸出結(jié)果:
通過對(duì)應(yīng)的組別名稱獲取相應(yīng)的數(shù)據(jù):
對(duì)數(shù)據(jù)所在的group進(jìn)行操作,對(duì)應(yīng)以上代碼即‘mask000000000’內(nèi)獲取數(shù)據(jù)。可以理解為名稱為mask000000000的文件內(nèi)的東西就是你要數(shù)據(jù)。(這里也可以理解為圖像,只不過你需要的不是圖像,而是圖像內(nèi)的像素集合)
部分輸出:
得到數(shù)據(jù)后,利用PIL依賴將數(shù)據(jù)保存為圖片格式。
需要注意的是給出的例子是一個(gè)單通道的灰度圖。針對(duì)圖像處理的Image.fromarray()函數(shù)貌似只能處理3通道或者是二維數(shù)組,所以利用img = np.squeeze(img)對(duì)通道數(shù)進(jìn)行了處理。同時(shí)需要對(duì)初始數(shù)據(jù)維度進(jìn)行校準(zhǔn),需要將維度順序改為 HWC
如果需要對(duì)三通道進(jìn)行處理,修改部分代碼為:展示所有代碼
// An highlighted block import h5py import numpy as np from PIL import Imageh5_file = "D:/GoProEvent/GOPRO/GOPRO/train/GOPR0372_07_00.h5" file = h5py.File(h5_file, "r") groups = [key for key in file.keys()] print("該文件共有以下幾組:", groups) a = file['masks'] conut = 0 for fg in a:print("group:"+fg)img = file['masks'][fg][:]save_path = 'D:/GoProEvent/masks/' + str(conut) + ".png"img = img.swapaxes(0, 1)img = img.swapaxes(1, 2)img = Image.fromarray(np.uint8(img))img.save(save_path)conut = conut + 1總結(jié)
以上是生活随笔為你收集整理的h5后缀文件python处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv之伪彩变换
- 下一篇: python商品评论数据采集与分析可视化