tfrecords转图片存储
import os
import shutil
import tensorflow as tf
import time
import sys
import cv2
# 图片存放位置
PATH_RES = [
r'data_tfrecords/integers_tfrecords/train.tfrecords',
r'data_tfrecords/integers_tfrecords/test.tfrecords',
r'data_tfrecords/alphabets_tfrecords/train.tfrecords',
r'data_tfrecords/alphabets_tfrecords/test.tfrecords',
r'data_tfrecords/Chinese_letters_tfrecords/train.tfrecords',
r'data_tfrecords/Chinese_letters_tfrecords/test.tfrecords'
]
PATH_DES = [
r'imgs_from_tfrecords/integers/train/',
r'imgs_from_tfrecords/integers/test/',
r'imgs_from_tfrecords/alphabets/train/',
r'imgs_from_tfrecords/alphabets/test/',
r'imgs_from_tfrecords/Chinese_letters/train/',
r'imgs_from_tfrecords/Chinese_letters/test/'
]
PATH = list(zip(PATH_RES, PATH_DES))
def tfrecord2jpg(path_res, path_des):
print('tfrecords_files to be transformed:', path_res)
reader = tf.TFRecordReader()
start_time = int(time.time())
prev_time = start_time
idx = 0
filename_queue = tf.train.string_input_producer([path_res], num_epochs=1)
# 从 TFRecord 读取内容并保存到 serialized_example 中
_, serialized_example = reader.read(filename_queue)
# 读取 serialized_example 的格式
features = tf.parse_single_example(
serialized_example,
features={
'image_raw': tf.FixedLenFeature([], tf.string),
'label': tf.FixedLenFeature([], tf.int64),
})
# 解析从 serialized_example 读取到的内容
images = tf.decode_raw(features['image_raw'], tf.uint8)
labels = tf.cast(features['label'], tf.int64)
print('Extracting {} has just started.'.format(path_res))
with tf.Session() as sess:
# 启动多线程
sess.run(tf.local_variables_initializer())
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess=sess, coord=coord)
while not coord.should_stop():
try:
label, img = sess.run([labels, images])
except tf.errors.OutOfRangeError:
print("Turn to next folder.")
break
cv2.imwrite(path_des+"_"+str(idx)+"_"+str(label)+'.jpg', img)
idx += 1
current_time = int(time.time())
lasting_time = current_time - start_time
interval_time = current_time - prev_time
if interval_time >= 0.1:
sys.stdout.flush()
sys.stdout.write("\rGenerating the {}-th image: {},\
lasting {} seconds".format(
idx,
path_des +
str(idx) + '_' +
str(label) + '.jpg',
lasting_time))
prev_time = current_time
coord.request_stop()
coord.join(threads)
def main():
# get empty directory
for i in range(len(PATH)):
if os.path.isdir(PATH_DES[i]):
if os.listdir(PATH_DES[i]):
shutil.rmtree(PATH_DES[i])
os.mkdir(PATH_DES[i])
else:
print(PATH_DES[i])
os.mkdir(PATH_DES[i])
tfrecord2jpg(PATH_RES[i], PATH_DES[i])
if __name__ == "__main__":
main()
tfrecords转图片存储的更多相关文章
- 免费图片存储和图话【提供demo下载】
我们不管是做博客系统还是其他网站,图片是免不了要使用到的.但是,我们都知道图片的访问是很耗资源的,同时也是很占磁盘空间的,且还特别占带宽. 所以,我们一般都会用到特定的图片服务器.不过,像我等屌丝平时 ...
- python、matlab、c++的括号增加次序,以及图片存储方式
1 增加次序: python:(同c++多维数组) np.zeros([2,3,4]),先是按照内存空间均分为2份,每份又均分3份,最终再细分4份 2最大份,先按左分 例子:re ...
- mongodb 文件,图片存储数据库
mongodb 文件,图片存储数据库
- ECStore图片存储采用阿里云OSS(图片存储)服务
主要功能:ECStore图片存储采用阿里云OSS(图片存储)服务 适用版本:ECStore 授权方式:授权域名使用,付费插件 联系方式: QQ 275553385 mail: jimingson ...
- 为图片存储而作——记一次UEditor源码的修改
本文版权归博客园和作者吴双本人共同所有. 写在前面 这是一个数据爆发的网络时代,大家习惯于浏览图文直观带给我们的快速信息.大图片的存储和浏览经常会成为Web服务器的瓶颈.试想如果你的Web服务器依然 ...
- 腾讯云万象优图每个账户提供50G的图片存储(支持黄图检测)
文章由GIT博客迁移过来 程序下载地址(源码也在):点我下载 设计说明 10月20号晚上,准备写这么一个程序. 腾讯云万象优图每个账户提供50G的图片存储(支持黄图检测) 可以在截图之后,直接点击上传 ...
- [TFRecord格式数据]利用TFRecords存储与读取带标签的图片
利用TFRecords存储与读取带标签的图片 原创文章,转载请注明出处~ 觉得有用的话,欢迎一起讨论相互学习~Follow Me TFRecords其实是一种二进制文件,虽然它不如其他格式好理解,但是 ...
- 图像转化成TFrecords格式并回转
import os import tensorflow as tf from PIL import Image import numpy as np cat_image_path='D:/软件/pyc ...
- TensorFlow中数据读取之tfrecords
关于Tensorflow读取数据,官网给出了三种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据. 从文件读取数据: 在TensorFlow ...
随机推荐
- java.net.NoRouteToHostException: 没有到主机的路由
今天在配置Jenkins 的云服务器的时候提示:java.net.NoRouteToHostException: 没有到主机的路由,网上查到的没有主机路由问题提到的大多是防火墙问题. 查看防火墙状态: ...
- scrapy的大文件下载(基于一种形式的管道类实现)
scrapy的大文件下载(基于一种形式的管道类实现) 爬虫类中将解析到的图片地址存储到item,将item提交给指定的管道 在管道文件中导包:from scrapy.pipelines.images ...
- ctfshow_djb杯
桐桑又开始摸鱼了 ctfshow的比赛整的一手好活.djb杯. web1_veryphp 打开就是源码: 1 <?php 2 error_reporting(0); 3 highlight_fi ...
- 转 3 jmeter的两种录制方法
录制1-badboy(推荐) badboy是一款自动化测试工具,它可以完成简单的功能测试和性能测试.其实它是一款独立的测试工具,只不过它录制东西导出的格式适用于jmeter,所以我们经常把jmet ...
- MySQL新特性MTS
一.MTS:多线程复制 MTS简介 在MySQL 5.6版本之前,Slave服务器上有两个线程I/O线程和SQL Thread线程.I/O线程负责接收二进制日志(Binary Log,更准确的说是二进 ...
- HTML5 初学者一步一步攀爬 努力加油学习
Html 5 Html:Hyper Text MarKup Language超文本标签语言 Html:网页的源码 浏览器:"解释和执行"HTMl源码的工具 Head 标签内的信息用 ...
- SpringMVC请求参数的获取方式
一.GET请求参数获取 1. 通过HttpServletRequest获取参数 2. 直接方法参数获取 3. RequestParam注解方式获取请求参数 4. Bean方式获取参数 5. Model ...
- 并发编程(Process对象的join方法)(
一. Process对象的join方法 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一:在主进程的任务与子进程的任务彼此独立的情况下 ...
- docker(5)docker运行web应用
前言 前面我们运行的容器并没有一些什么特别的用处. 接下来让我们尝试使用 docker 构建一个 web 应用程序. 我们将在docker容器中运行一个 Python Flask 应用来运行一个web ...
- 2019 Multi-University Training Contest 1 Path(最短路+最小割)
题意:给你n个点 m条边 现在你能够堵住一些路 问怎样能让花费最少且让1~n走的路比最短路的长度要长 思路:先跑一边最短路 建一个最短路图 然后我们跑一边最大流求一下最小割即可 #include &l ...