tensorflow对图像进行拼接的例子


Posted in Python onFebruary 05, 2020

tensorflow对图像进行多个块的行列拼接tf.concat(), tf.stack()

在深度学习过程中,通过卷积得到的图像块大小是8×8×1024的图像块,对得到的图像块进行reshape得到[8×8]×[32×32],其中[8×8]是图像块的个数,[32×32]是小图像的大小。通过tf.concat对小块的图像进行拼接。

-在做图像卷积的过程中,做了这样一个比较麻烦的拼接,现在还没想到更好的拼接方法,因为是块拼接,开始的时候使用了reshape,但是得到的结果不对,需要确定清楚数据的维度,对于数据的维度很是问题。

import tensorflow as tf
def tensor_concat(f, axis):
 x1 = f[0, :, :]
 for i in range(1, 8):
  x1 = tf.concat([x1, f[i, :, :]], axis=axis)
 return x1

def block_to_image(f): 
 x1 = tf.reshape(f, [64, 1024])
 x1 = tf.reshape(x1, [64, 32, 32])
 m2 = tensor_concat(x1[0:8, :, :], axis=1)
 for i in range(1, 8):
  m1 = tensor_concat(x1[i*8:(i+1)*8, :, :], axis=1)
  m2 = tf.concat([m2, m1], axis=0)
 x2 = tf.reshape(m2, [256, 256, 1])
 return x2

x = tf.random_normal([ 8, 8, 1024])
with tf.Session() as sess:
 m = sess.run(x)
 m1 = sess.run(block_to_image(m))

最后通过行拼接和列拼接得到图像大小为256×256×1大小的图像。

对[batch_size, height, weight, channel] 的图像进行1一样的图像块拼接:

在深度神经网络中,会有batch_size个图像大小[256×256×1]的图像进行块的拼接,对于多了一个维度的图像拼接起来,由[batch_size, 8, 8, 1024]拼接为[batch_size,256, 256, 1]。在做着部分时batch_size这部分实在是不知道怎么处理,所以还是用了本办法,使用的函数是append和tf.stack()

def tensor_concat(f, axis):
 x1 = f[0, :, :]
 for i in range(1, 8):
  x1 = tf.concat([x1, f[i, :, :]], axis=axis)
 return x1

def block_to_image(f):
 x3 =[]
 for k in range(f.shape[0]):
  x = f[k, :, :, :]
  x1 = tf.reshape(x, [64, 1024])
  x1 = tf.reshape(x1, [64, 32, 32])
  m2 = tensor_concat(x1[0:8, :, :], axis=1)
  for i in range(1, 8):
   m1 = tensor_concat(x1[i*8:(i+1)*8, :, :], axis=1)
   m2 = tf.concat([m2, m1], axis=0)
  x2 = tf.reshape(m2, [256, 256, 1])
  x3.append(x2)
  x4 = tf.stack(x3)
 return x4 
x = tf.random_normal([10, 8, 8, 1024])
with tf.Session() as sess:
 m = sess.run(x)
 m1 = sess.run(block_to_image1(m))

在学习过程中对tensor不能直接赋值,比如不能写:

x2 = tf.reshape(m2, [256, 256, 1]) 

x3[k, :, :, 1] = x2

这样的代码,会出现错误:'Tensor' object does not support item assignment

对于带有类似索引的赋值,参考的办法是:

x3 = [] 

x3.append(x2)

这时候得到的是list的格式,所以接下来将list转化为array,使用的是tf.stack(x3)

以上这篇tensorflow对图像进行拼接的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python下载文件时显示下载进度的方法
Apr 02 Python
python用10行代码实现对黄色图片的检测功能
Aug 10 Python
Python3连接SQLServer、Oracle、MySql的方法
Jun 28 Python
pycharm中使用anaconda部署python环境的方法步骤
Dec 19 Python
python实现大文件分割与合并
Jul 22 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
Oct 18 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
Dec 12 Python
提升python处理速度原理及方法实例
Dec 25 Python
简单了解python调用其他脚本方法实例
Mar 26 Python
Python Socketserver实现FTP文件上传下载代码实例
Mar 27 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 27 Python
python井字棋游戏实现人机对战
Apr 28 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 #Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 #Python
基于Tensorflow批量数据的输入实现方式
Feb 05 #Python
Python操作注册表详细步骤介绍
Feb 05 #Python
Python类继承和多态原理解析
Feb 05 #Python
Python模块 _winreg操作注册表
Feb 05 #Python
python3操作注册表的方法(Url protocol)
Feb 05 #Python
You might like
PHP中比较两个字符串找出第一个不同字符位置例子
2014/04/08 PHP
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
零基础php编程好学吗
2019/10/11 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
javascript引导程序
2008/10/26 Javascript
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
jquery replace方法去空格
2017/05/08 jQuery
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
Python的Flask框架中@app.route的用法教程
2015/03/31 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
python实现求最长回文子串长度
2018/01/22 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
2018/01/30 Python
python语言中with as的用法使用详解
2018/02/23 Python
python中map的基本用法示例
2018/09/10 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
keras在构建LSTM模型时对变长序列的处理操作
2020/06/29 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
银行柜员应聘推荐信范文
2013/11/24 职场文书
测绘工程专业个人自我评价
2013/12/01 职场文书
大型晚会策划方案
2014/02/06 职场文书
进步之星获奖感言
2014/02/22 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
MySQL库表名大小写的选择
2021/06/05 MySQL
nginx配置虚拟主机的详细步骤
2021/07/21 Servers
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android