【Python 代码】生成hdf5文件
import random
from PIL import Image
import numpy as np
import os
import h5py
from PIL import Image LIST_FILE = ['list_train.txt', 'list_test.txt']######################
HDF5_LIST = 'HDF5/list_hdf5.txt'############## print '\nplease wait...' #write
Phase='TRAIN'
slice_num=100 #every 100 img form a hdf5 file if Phase=='TRAIN':
image_dir=LIST_FILE[0]
elif Phase=='TEST':
image_dir=LIST_FILE[1]
else:
print 'error!' files=[]
with open(image_dir) as f0:
for line in f0.readlines():
files.append(line[:-1]) random.shuffle(files)#随机打乱文件顺序############# sum_file=len(files) # sum of img
count_end=int(sum_file/slice_num) #num of hdf5 files:count_end+1 for count in range (count_end+1):
files_part=[]
if count==count_end:
files_part=files[count_end*slice_num:]
else:
files_part=files[count*slice_num:(count+1)*slice_num] # data :eg 1channel 96*32
datas = np.zeros((len(files_part),1, 512, 512)) ###输入tif尺寸
# label eg 1*2
labels = np.zeros((len(files_part),1,340, 340)) ####label尺寸 for ii, _file in enumerate(files_part):
train_img='./train/train_img_512/'+_file #######################
train_label='./train/train_label_crop340/'+_file ################
#print _file
datas[ii, :, :] = np.array(Image.open(train_img)).astype(np.float32) / 256
labels[ii, :, :] = \
((np.array(Image.open(train_label)).astype(np.float32) / 256)>0.5)\
.astype(np.float32)####大于0.5输出1,否则输出0 #New=Image.fromarray(labels[0][0])
#New.show() hdf5filename=Phase+'_hdf5_'+str(count)+'.h5'
with h5py.File('HDF5/'+hdf5filename, 'w') as f:
f['data'] = datas
f['label'] = labels
f.close()
#生成hdf5文件列表用于prototxt中
with open(HDF5_LIST, 'a') as f:
f.write('caffe-unet-src/cell_data/HDF5/'+hdf5filename + '\n')
f.close() print 'hdf5 file : %d'%(count+1) print '\ndone!'
【Python 代码】生成hdf5文件的更多相关文章
- 利用Python 脚本生成 .h5 文件 代码
利用Python 脚本生成 .h5 文件 import os, json, argparse from threading import Thread from Queue import Queue ...
- ros 使用python代码启动launch文件
在开发中我们经常会遇到使用python代码启动launch文件这样的问题.一般的做法是使用subprocess调用roslaunch.但是这种方法使用起来并不方便.要涉及到自己去控制进程的状态.由于r ...
- python template生成模板文件
简介 在实际项目中,可能会出现需要批量生成特定格式或者特定内容的文件,因此,使用template文件生成便适用于在文件中大部分格式内容都是一致的,部分内容需要替换的情况. 模板文件 name: $NA ...
- Python数据生成pdf文件
sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...
- python代码执行SQL文件(逐句执行)
一.简介 关于Python如何连接数据库并执行SQL语句,几乎所有的Python教程都会讲,教程里基本只介绍了执行单条SQL语句的方法,但是实际生产过程中可不只是执行一两条语句,动辄几十条甚至上百条的 ...
- 一行python代码搞定文件分享
给同事分享文件,如你所知通过聊天工具,网盘或linux命令各种方法,还有一个也可以尝试下:使用一行python代码快速搭建一个http服务器在局域网内进行下载. python3使用: python3 ...
- python 自动生成model 文件 案例分析
生成方式 Python中想要自动生成 model文件可以通过 sqlacodegen这个命令来生成对应的model文件 sqlacodegen 你可以通过pip去安装: pip install sql ...
- 【Python系列】HDF5文件介绍
一个HDF5文件是一种存放两类对象的容器:dataset和group. Dataset是类似于数组的数据集,而group是类似文件夹一样的容器,存放dataset和其他group.在使用h5py的时候 ...
- 用python代码做configure文件
在lua中,我一直用lua作为config文件,或者承载数据的文件 - 好处是lua本身就很好阅读,然后无需额外写解析的代码,还支持在configure文件中读环境变量,条件判断等,方便又强大! (在 ...
随机推荐
- Gradle3.0新指令api、provided、implementation等对比
Android Studio3.0正式版已经出来了,相比2.x的版本,Gradle版本也升级为了3.x,编译速度提高了不少. 在gadle3.0之后,默认的依赖由之前的compile更改为implem ...
- 大数据的前世今生【Hadoop、Spark】
一.大数据简介 大数据是一个很热门的话题,但它是什么时候开始兴起的呢? 大数据[big data]这个词最早在UNIX用户协会的会议上被使用,来自SGI公司的科学家在其文章“大数据与下一代基础架构 ...
- Python学习日记(五) 编码基础
初始编码 ASCII最开始为7位,一共128字符.最后确定8位,一共256个字符,最左边的为拓展位,为以后的开发做准备. ASCII码的最左边的一位为0. 基本换算:8位(bit) = 1字节(byt ...
- Linux命令——rsync
参考:Rsync (Remote Sync): 10 Practical Examples of Rsync Command in Linux How to Sync Files/Directorie ...
- HQL基本语法及应用案例
HQL基本语法及应用案例 摘自:<大数据技术体系详解:原理.架构与实践> 一.HQL基本语法 HQL是Hive提供的数据查询语言,由于Hive巨大的影响力,HQL已被越来越多的Hive O ...
- 使用ansible部署CDH 5.15.1大数据集群
使用ansible离线部署CDH 5.15.1大数据集群 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在此之前,我之前分享过使用shell自定义脚本部署大数据集群,不管是部署CD ...
- P1311 选择客栈[模拟]
题目描述 丽江河边有nn家很有特色的客栈,客栈按照其位置顺序从 11到nn编号.每家客栈都按照某一种色调进行装饰(总共 kk 种,用整数 00 ~k-1k−1 表示),且每家客栈都设有一家咖啡店,每家 ...
- JDK5不定参数方法
jdk5之后出现了调用方法时传递不定参数的情况,如下所示: List<Intrger> list1 = Arrays.asList(new Integer[]{1,2,3}); List& ...
- 图表可视化highcharts和百度的echarts
前端数据可视化插件有很多,有 Highcharts(https://www.hcharts.cn/) Echarts(http://echarts.baidu.com/) D3(https://d3j ...
- php 常用字符串函数总结
php里面自带的字符串函数,日期函数,数组函数等,有时候可以帮助我们解决很复杂的问题,运用起来也比较简单. 下面总结了一下常用的字符串函数. addcslashes — 为字符串里面的部分字符添加反斜 ...