【问题标题】:Save tensors as images in TensorFlow在 TensorFlow 中将张量保存为图像
【发布时间】:2018-06-23 18:47:20
【问题描述】:

这可能是一个简单的问题。我只是想对图像进行氡变换并使用 TensorFlow 中的函数保存它。但结果不对。我知道我可以使用 plt.imsave() 正确保存图像,但我想知道如何在 TensorFlow 中执行此操作。

我是 TensorFlow 新手,感谢您的帮助。

This is the shepp-logan.jpg image I use. It is a grayscale image with size 64*64

This is the saved image

这是我的代码。

from skimage.transform import radon,iradon
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np

sess = tf.Session()
img = plt.imread('shepp-logan.jpg')
theta = np.linspace(0., 180., max(img.shape), endpoint=False)
sinogram = radon(img, theta=theta, circle=True)
sinogram = tf.cast(sinogram, tf.uint8)
sinogram = tf.expand_dims(sinogram, -1)
sinogram = tf.image.encode_jpeg(sinogram, quality=100, format='grayscale')
writer = tf.write_file('test_sinogram.jpg', sinogram)
sess.run(writer)

【问题讨论】:

  • 您要专门保存还是只查看并保存为 tf 格式?
  • @Lau 如果能专门保存就最好了。但是如何查看呢?
  • 您可以使用 tensorard (tf.summary.image) 查看。太晚了,我明天给你写一个详细的答案;)
  • 请在下一次包含一个功能示例,您只是缺少两行和一些适当的缩进...stackoverflow.com/help/mcve

标签: python tensorflow back-projection


【解决方案1】:

问题在于函数 radon 返回的值对于 tensorflow 来说太高了。 TensorFlow 希望每个通道的值介于 0 到 255 (uint8) 之间。

我不知道为什么会这样,但是在查看了 sinogram 中的值后我做了一个快速测试,并决定除以 np.max(sinogram),结果看起来更接近你所期望的我相信 :)

from skimage.transform import radon,iradon
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np

sess = tf.Session()
img = plt.imread('shepp-logan.jpg')
theta = np.linspace(0., 180., max(img.shape), endpoint=False)
sinogram = radon(img, theta=theta, circle=True)

# scaling the values here
sinogram = 255*sinogram/np.max(sinogram)

sinogram = tf.cast(sinogram, tf.uint8)
sinogram = tf.expand_dims(sinogram, -1)
sinogram = tf.image.encode_jpeg(sinogram, quality=100, format='grayscale')
writer = tf.write_file('test_sinogram.jpg', sinogram)
sess.run(writer)

至于我推荐你使用的tensorboard,你必须使用tf.summary.image:https://www.tensorflow.org/api_docs/python/tf/summary/image

这里是张量板指南:https://www.tensorflow.org/programmers_guide/summaries_and_tensorboard

【讨论】:

    猜你喜欢
    • 2018-03-13
    • 2018-03-16
    • 1970-01-01
    • 2021-02-19
    • 2019-01-12
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 2021-06-29
    相关资源
    最近更新 更多