h5网页制作_为什么叫h5页面

h5网页制作_为什么叫h5页面背景:h5文件详解H5文件是层次数据格式第5代的版本(HierarchicalDataFormat,HDF5),它是用于存储科学数据的一种文件格式和库文件。由美国超级计算中心与应用中心研发的文件格式,用以存储和组织大规模数据.H5将文件结构简化成两个主要的对象类型: 数据集dataset,就是同一类型数据的多维数组 组group,是一种容器结构,可以包含数据集和其他组,若一个文件中存放了不同种类的数据集,这些数据集的管理就用到了group! 直观的理解,可以参考我们的文件系统

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

背景:h5文件详解

H5文件是层次数据格式第5代的版本(Hierarchical Data Format,HDF5),它是用于存储科学数据的一种文件格式和库文件。由美国超级计算中心与应用中心研发的文件格式,用以存储和组织大规模数据.

H5将文件结构简化成两个主要的对象类型:

  • 数据集dataset,就是同一类型数据的多维数组

  • 组group,是一种容器结构,可以包含数据集和其他组,若一个文件中存放了不同种类的数据集,这些数据集的管理就用到了group!

直观的理解,可以参考我们的文件系统,不同的文件存放在不同的目录下: 目录就是hdf5文件中的group,描述了数据集DataSet的分类信息,通过group有效的将多种dataset进行管理和划分~ 文件就是hdf5文件中的dataset,表示具体的数据~ 下图就是数据集和组的关系:

h5网页制作_为什么叫h5页面

简单总结为:

h5py文件是存放两类对象的容器,数据集(dataset)和组(group),dataset类似数组类的数据集合,和numpy的数组差不多。group是像文件夹一样的容器,它好比python中的字典,有键(key)和值(value)。group中可以存放dataset或者其他的group。”键”就是组成员的名称,”值”就是组成员对象本身(组或者数据集),下面来看下如何创建组和数据集。

实现:图片与h5文件的转化

一、图片转h5

1.先对图片进行排序,默认从1开始 

from PIL import Image
 import os
 ​
##改变图片大小,修改图片名字 ​
 def get_smaller(path_in, name, path=None, width=64, length=64):
     ''' 检查文件夹是否建立,并建立文件夹 '''
     if path == None:
         tar = os.path.exists(os.getcwd() + "\\" + name)
         if not tar:
             os.mkdir(os.getcwd() + "\\" + name)
         im_path = os.getcwd() + "\\" + name + "\\"
     else:
         tar = os.path.exists(path + "\\" + name)
         if not tar:
             os.mkdir(path + "\\" + name)
         im_path = path + "\\" + name + "\\"
 ​
     i = 1
     list_image = os.listdir(path_in)
     for item in list_image:
         '''检查是否有图片'''
         tar = os.path.exists(im_path+str(i)+'.jpg')
         if not tar:
             image = Image.open(path_in+'\\'+item)
             smaller = image.resize((width, length), Image.ANTIALIAS)
             '''注意这里如果不加转换,很可能会有报错'''
             if not smaller.mode == "RGB":
                 smaller = smaller.convert('RGB')
             smaller.save(im_path+str(i)+'.jpg')
         i += 1
 get_smaller("E:\\桌面\\te\\001", "6")

为了更方便地输入接下来的程序,我们需要有一定标准的数据集,也就是图片的大小最好是确定的 所以我们需要修改每一张图片,让其大小一定! 这里我选择把所有图片修改为64×64像素的,并重新编号存入另一个文件夹中!

这个函数的使用方法是:函数(原始图片文件夹路径,新文件夹名称) 你可以通过path关键字选择新文件夹的储存路径,也可以默认生成在当前目录 你还可以修改widthlength来选择新图片的大小 总之,我们得到了最终要使用的图片,它们都在新文件夹中!

h5网页制作_为什么叫h5页面

2.开始制作

 
import numpy as np
 import matplotlib.pyplot as plt
 import h5py
 import os
 ​
 def createData(path):
     pics = os.listdir(path)
     all_data = []
     for item in pics:
         '''难免有图片打不开'''
         try:
             all_data.append(plt.imread(path+'\\'+item).tolist())
         except Exception as pic_wrong:
             print(item+" pic wrong")
     return all_data
 ​
 def createSet(hf, name, tip, data):
     hf.create_dataset(name, data=data)
     t = [[tip]*len(data)]
     hf.create_dataset(name + '_tip', data=t)
 ​
 if __name__ == '__main__':
     hf = h5py.File('data-train.h5', 'w')
     all_data = createData('E:\\桌面\\te\\5')
     createSet(hf, 'train_set_1', 1, all_data)
     hf.close()
 ​

我的:

import numpy as np
 import matplotlib.pyplot as plt
 import h5py
 import os
 ​
 def createData(path):
     pics = os.listdir(path)
     all_data = []
     for item in pics:
         '''难免有图片打不开'''
         try:
             all_data.append(plt.imread(path+'\\'+item).tolist())
         except Exception as pic_wrong:
             print(item+" pic wrong")
     return all_data
 ​
 def createSet(hf, name, data):
     hf.create_dataset(name, data=data)
     # t = [[tip]*len(data)]
     # hf.create_dataset(name + '_tip', data=t)
 ​
 if __name__ == '__main__':
     hf = h5py.File('data-train.h5', 'w')
     all_data = createData('E:\\桌面\\te\\image_3_new')
     createSet(hf, 'images2', all_data)
     hf.close()
  

一张图片用imread之后是一个三维数组,64x64x3 个数据,64×64是像素,每个像素由red green blue三原色的值叠加来控制,函数 createdata 把 path 下所有图片的数组合并到一个列表中,得到一个4维数组,并返回,·createset 是做一个分类用的数据集,hf 是传入一个h5文件, name是在h5文件下新建的图片数据集的key;tip 是给图片数据加标签,并新生成一个以 name_tip 为key的数据集。相当于会有两个数据集,一个存图片数据,一个存图片数据的标签

一个h5文件可以print(hf.keys())来查看里面的key,每一个key对应一个数据集,一个h5文件可以有很多数据集~

h5文件的数据:(行表示图片个数,列表示刚才设置的64像素)

h5网页制作_为什么叫h5页面

h5标签:(列表示图片个数,行表示标签内容)

h5网页制作_为什么叫h5页面

reference:(1条消息) python:从零开始的图片h5py数据集制作是脑瘫啊的博客-CSDN博客h5py数据集

二、h5转图片

 
import cv2
 import h5py
 import numpy as np
 from scipy.misc import imsave
 from skimage import transform
 ​
 ​
 hr_dataset = h5py.File('test_data.h5')['images2']  //h5文件路径
 # label = h5py.File('data-train.h5')['train_set_1_tip']
 lenght=len(hr_dataset)
 for i in range(len(hr_dataset)):
    y = hr_dataset[i]
    # x = label[i]
    cv2.imwrite('image_test/%s.png'%i, y)  //写成png格式
    # cv2.imwrite(str(i)+"0.png", x)
 ​
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195635.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • udp数据包大小问题

    udp数据包大小问题参考 UDP 数据包大小问题几个关键点 1 以太网 Ethernet 在数据链路层 数据帧的长度必须在 46 1500 字节之间 这个 1500 字节被称为链路层的 MTU 最大传输单元 已经减去首部和尾部的 18 字节 这个 1500 字节就是网络层 IP 数据报的长度限制 因为 IP 数据报的首部为 20 字节 所以 IP 数据报的数据区长度最大为 1480 字节 而这个 1480 字节就是用来放 TCP 传来的 TCP 报文段或 UD

    2025年10月22日
    4
  • CAS Authentication failed!

    CAS Authentication failed!

    2021年9月3日
    75
  • IDEA打jar包在服务器运行出现Error:Invalid or corrupt jarfile xxx.jar 报错+如何使用IDEA打jar包

    IDEA打jar包在服务器运行出现Error:Invalid or corrupt jarfile xxx.jar 报错+如何使用IDEA打jar包JAR包错误:Error:Invalidorcorruptjarfilexxx.jar错误背景:IDEA打包springboot项目为jar包。打包方法百度了好几种,结果都在运行时报了Error:Invalidorcorruptjarfilexxx.jar错误。…

    2022年8月22日
    9
  • 比较文本相似度_比较文本差异的工具

    比较文本相似度_比较文本差异的工具from:https://cloud.tencent.com/developer/news/218062本文作者为YvesPeirsman,是NLP领域的专家。在这篇博文中,作者比较了各种计算句子相似度的方法,并了解它们是如何操作的。词嵌入(wordembeddings)已经在自然语言处理领域广泛使用,它可以让我们轻易地计算两个词语之间的语义相似性,或者找出与目标词语最相似的词语。然而…

    2025年6月23日
    4
  • maven项目使用mybatis插件Free Mybatis plugin「建议收藏」

    maven项目使用mybatis插件Free Mybatis plugin「建议收藏」首先安装插件如图所示选择第一个插件安装,安装完毕重启IDEA 然后我们选择我们已经配置好的数据库如下图在需要生成配置文件的数据库上右键,就会出现mybatis-generator选项打开这个就打开如上图所示配置窗口,这里我们使用默认的就行,如果不想使用lombok去掉这个勾选即可,然后我们选择ok即可就会生成以上文件,一个数据库的映射类,一个操作数据库的映射接口,和具体操作数据库的xml,主配置文件就在Configure里面这个自己生成…

    2022年9月28日
    4
  • COLORREF结构「建议收藏」

    COLORREF结构「建议收藏」1 定义typedef DWORD  COLORREF;即为一个32为长整数2初始化COLORREFcol=RGB(100,200,10);其中用到了RGB,看看他是什么:#defineRGB(r,g,b)         ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))原来也是一个COLORREF,不过是把参数转换

    2025年6月27日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号