tensorflow对图像进行拼接的例子

作者:J_PrCz 时间:2022-05-30 02:11:49 

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)

来源:https://blog.csdn.net/Jingnian_destiny/article/details/82423900

标签:tensorflow,图像,拼接
0
投稿

猜你喜欢

  • PyCharm创建Django项目的简单步骤记录

    2023-08-28 11:03:37
  • python如何删除文件中重复的字段

    2021-09-19 15:43:12
  • Python读取ini配置文件传参的简单示例

    2022-02-06 09:51:36
  • 详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)

    2023-01-04 22:01:05
  • Django视图、传参和forms验证操作

    2023-03-04 09:17:03
  • mysql分页性能探索

    2024-01-23 22:35:21
  • 创建Vue项目以及引入Iview的方法示例

    2024-05-28 16:04:05
  • 不要忽略了颜色的可用性

    2009-03-05 18:19:00
  • MySQL数据库基于sysbench实现OLTP基准测试

    2024-01-28 11:07:14
  • python基于tkinter制作m3u8视频下载工具

    2022-08-27 06:11:57
  • Pyhon Flask框架:第一个Flask程序

    2023-01-09 16:06:34
  • python中使用psutil查看内存占用的情况

    2022-11-11 11:26:22
  • Python实现扫描指定目录下的子目录及文件的方法

    2022-09-04 23:44:40
  • Python+OpenCV内置方法实现行人检测

    2023-10-19 12:52:47
  • vue+element实现图片上传及裁剪功能

    2024-05-29 22:22:12
  • 实例讲解MySQL 慢查询

    2024-01-20 16:25:56
  • 解决Django部署设置Debug=False时xadmin后台管理系统样式丢失

    2022-05-09 00:33:57
  • asp如何验证IP地址?

    2010-06-10 18:37:00
  • Python用input输入列表的实例代码

    2021-09-22 09:33:53
  • Go语言配置数据库连接池的实现

    2024-01-20 00:51:49
  • asp之家 网络编程 m.aspxhome.com