python h5开发,python写h5网页前端
代码流程图:本章的代码流程
本章是关于- make_dataset.py的
-请参阅
第一步:处理的文件的路径和名称
文件名=操作系统。路径。基本名称(JPEG _ dir .标准英语跳闸(/)
HD F5 _ file=OS。路径。join(数据目录, % s _ data。H5“% file _ name”rst rip):将线字符串末尾的指定字符(默认为空格)
OS.path.basename:返回小路的最后一个文件名的【python os.path模块的常规方法详细信息】附录中有此函数的分析
" %s_data.h5 %文件名:实际上也可以使用格式:" { } _ data " .H5的。格式(文件名)
用5py.file(HDF5_file, w )作为hfw:
对于训练,测试,值]中的数据集类型:
遍历数据文件夹下的三个子文件
list _ img=[imgforimginpath(JPEG _ dir).glob(%s/* ).jpg%dset_type ) ]
list _ img=[str(img)for img in list _ img]
list _ img。extend(list(path(JPEG _ dir)).glob(%s/* ).png"% dset _ type ")
list_img=list(映射(str,list _ img))
list_img=NP .数组(list_img))。
好了,我不想分析这一段。作者写起来很麻烦。我自己写的,同样可以实现上述功能。这是获取每个子文件夹中文件的所有路径。
list _ img=[OS。路径。join(JPEG _ dir,dset_type,name)为name inos。列表目录)操作系统。路径。加入(JPEG _ dir)
list_img=NP .数组(list_img))。
NP。数组:将大蟒的目录数据类型转换为NP。数组数据类型。
-请参阅
第二步:将图像处理为h5格式
data _ full=hfwcreate _ dataset( % s _ data _ full % dset _ type,
(0,nb_channels,size,size),
最大形状=(无,3,大小,大小),
dtype=np.uint8)
数据_草图=hfw。create _ dataset( % s _ data _ sketch % dset _ type,
(0,nb_channels,size,size),
最大形状=(无,3,大小,大小),
dtype=np.uint8)
【创建_数据集官网说明】这也是我第一次提到这个,以下是我个人的见解。
创建数据集函数在一个h5文件中创建一个数据集。另外,可以在一个h5文件中创建多个数据集,以存储不同功能的数据。第一个参数是资料组的名称
数据集中数据的具体大小
资料组最多可以存储多少个数据?大多数第一个参数在没有人的说明中可以存储无限个
num_files=len(list_img)
块大小=100
块数=文件数/块大小
arr _ chunks=NP。数组_拆分(NP。arange(文件数),块数)NP。数组_拆分(NP。arange))数量
图像太多,需要分组保存到h5文件中
forchunk_idxinTQDM(ARR_chunks):
list _ img _ path=list _ img[chunk _ idx].列出(
output=parmap.map(format_image,list_img_path,size,nb_channels,pm_parallel=
False)tolist():将排列变成数组的列表,这相当于一个迭代器
parmap.map:其是将list_img_path里面的量一个一个的送入到格式_图像函数中【欢迎阅读parmap的文档!】附录有解析
arr _ img _ full=NP。连接([o[0]表示输出中的o],轴=0)
arr _ img _ sketch=NP。连接([o[1]表示输出中的o],轴=0)将输出的输出分开,且按照第一个维度连接在一起。
格式_图像返回的有两个元素目录
数据已满。resize(data _ full。形状[0]arr _ img _ full。形状[0],轴=0)
数据_草图。调整大小(data _ sketch。形状[0]arr _ img _ sketch。形状[0],轴=0)调整资料组的大小,我们调整的只是个数。
注意是先把资料组变大在向里面加数据。
数据完整[-数组完整。形状[0]:]=arr _ img _ full。astype(NP。uint 8)
数据_草图[-数组_图像_草图。形状[0]:]=arr _ img _ sketch。astype(NP。uint 8)
向资料组的相应位置存储图片
测试:
提示:想从后面数几个数:-arr_img_full.shape[0]:
#顾名思义这个函数就是检查,你转换的是否成功的
def check_HDF5(jpeg_dir,nb_channels):
用地标绘制图像以检查处理过程
#获取hdf5文件
文件名=操作系统。路径。basename(JPEG _ dir。rst rip(/))
HD F5 _ file=OS。路径。join(数据目录, %s_data.h5 %文件名)
用h5py .文件(hdf5_file, r )为高频:#注意这里是r 只读模式
数据满=高频[列车数据满]
data _ sketch=HF[ train _ data _ sketch ]#得到相应的资料组
对于范围内的我(data _ full。形状[0]):
图表()
img=data_full[i,].转置(1,2,0)
img2=data_sketch[i,].转置(1,2,0)#得到图片,将深度在调到最后
img=np.concatenate((img,img2),axis=1)#将图片在次拼在一起
如果nb_channels==1:
plt.imshow(img[:0],cmap=gray )
否则:
plt.imshow(img)
plt.show()
plt.clf()
plt.close()
使用h5文件的思路是:打开h5文件,选取相应的数据集(这时就相当于一个一批了,有四个维度)。很方便
附:
1,os.path.basename
os.path.basename(c:\\test.csv )
test.csv
os.path.basename(c:\\csv )
csv (这里战斗支援车被当作文件名处理了)
os.path.basename(c:\\csv\\ )
2,np.array_split函数
文件数量=5
打印(文件数)
chunk_size=2
块数=文件数/块大小
打印(块数)
arr _ chunks=NP。数组_拆分(NP。阿兰格(文件数),组块数)
打印(数组块)
输出:
5
2.5
[数组([0,1,2]),数组([3,4])]
3、地图函数格式_图像:传入一个功能函数
list_img_path:一个目录相当于一个迭代器
尺寸,nb _频道:后面两个参数是传给第一个函数格式_图像的
pm _并行:设置地图,但不清楚是干嘛的
功能是循环读出list_img_path的数据到格式_图像函数中,结果放在一个目录内返回
注:【Python中*参数和* *克瓦查的用法】当函数的参数不确定时,可以使用*参数和* *夸尔斯,*参数没有键值,* *克瓦查有键值。这就很好的区别了那些参数是传给功能的,哪些是去设置地图函数的
4、格式_图片函数
极好的格式_图像(img _路径,大小,nb _通道):
用中文版加载图片并整形
如果nb_channels==1:
img=cv2.imread(img_path,0)
img=np.expand_dims(img,axis=-1)
否则:
img=cv2.imread(img_path)
img=img[:-1] # GBR到RGB
w=img.shape[1]
#读取图片
#将图像一分为二以获得两部分
img_full=img[:w //2,]
img_sketch=img[:w //2:]
#将图片切成两部分
img_full=cv2.resize(img_full,(size,size),插值=cv2 .区间_区域)
img _ sketch=cv2。resize(img _ sketch,(size,size),插值=cv2 .区间_区域)
#将图片规整到相应大小
如果nb_channels==1:
img _ full=NP。expand _ dims(img _ full,-1)
img _ sketch=NP。expand _ dims(img _ sketch,-1)
img _ full=NP。expand _ dims(img _ full,0).转置(0,3,1,2)
img _ sketch=NP。expand _ dims(img _ sketch,0).转置(0,3,1,2)
#将图片增加一个第一维度,即批量生产。然后在将深度维度放到一维度
返回img _完整,img _草图
?cv2.imread读的是引导骨再生术
?大蟒读图片的函数,那些是RGB哪些是
?img[:-1]是怎么实现调换通道的:-1就是调换顺序
最后附上我的结果:
欢迎关注公众号:黄小白880https://www。胡志。com/video/924964085190230016
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。