h5后缀文件python处理
文件的結(jié)構(gòu)為組+數(shù)據(jù)集
其中組可以是多級的,類似文件夾的目錄關(guān)系。
首先打開對應(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’]來“打開對應(yīng)目錄”
如果是多級group可以將相關(guān)信息打印出來查看:
輸出結(jié)果:
通過對應(yīng)的組別名稱獲取相應(yīng)的數(shù)據(jù):
對數(shù)據(jù)所在的group進行操作,對應(yīng)以上代碼即‘mask000000000’內(nèi)獲取數(shù)據(jù)。可以理解為名稱為mask000000000的文件內(nèi)的東西就是你要數(shù)據(jù)。(這里也可以理解為圖像,只不過你需要的不是圖像,而是圖像內(nèi)的像素集合)
部分輸出:
得到數(shù)據(jù)后,利用PIL依賴將數(shù)據(jù)保存為圖片格式。
需要注意的是給出的例子是一個單通道的灰度圖。針對圖像處理的Image.fromarray()函數(shù)貌似只能處理3通道或者是二維數(shù)組,所以利用img = np.squeeze(img)對通道數(shù)進行了處理。同時需要對初始數(shù)據(jù)維度進行校準,需要將維度順序改為 HWC
如果需要對三通道進行處理,修改部分代碼為:展示所有代碼
// 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处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv之伪彩变换
- 下一篇: python商品评论数据采集与分析可视化