【问题标题】:No Tensorflow decoder for TIFF images?没有 TIFF 图像的 TensorFlow 解码器?
【发布时间】:2017-06-18 12:55:04
【问题描述】:

我注意到Tensorflow提供了读取文件后解码jpegpnggif图像的标准程序。例如png:

import tensorflow as tf
filename_queue = tf.train.string_input_producer(['/Image.png']) #  list of files to read
reader = tf.WholeFileReader()    
key, value = reader.read(filename_queue)
decoded_image = tf.image.decode_png(value) # use png or jpg decoder based on your files.

但是,tiff 格式解码器似乎不见了。

那么tiff 文件有哪些解决方案呢?当然,我可以将输入图像转换为png,但这似乎不是一个非常聪明的解决方案。

【问题讨论】:

  • 嗨,我目前面临同样的问题。你最终使用了哪种方法?编写自己的 TIFF 格式解码器或简单地将文件转换为支持的格式,例如PNG?谢谢!
  • @jlhw 嗨,最后我自己在 Python 中加载图像(通过标准 Python 图像库),然后将它们作为张量提供给 TensorFlow。它的优点是在实际网络训练之前,可以很容易地在 Python 中使用 numpy 或pillow 以您想要的方式预处理图像。我的图片很大,但很少,所以我只需要预加载一次,这不是这个过程的瓶颈。希望这会有所帮助。

标签: tensorflow tiff


【解决方案1】:

截至February 2019,一些(有限的和实验性的)TIFF 支持已作为Tensorflow I/O 库的一部分添加:

添加了非常初步的 TIFF 支持。 TIFF 格式相当复杂,因此尚不支持 JPEG 等压缩格式,但可以根据需要添加。

目前可以使用以下方法:

tfio.experimental.image.decode_tiff

将 TIFF 编码的图像解码为 uint8 张量。

tfio.experimental.image.decode_tiff_info

解码 TIFF 编码的图像元数据。

来自Tensorflow tutorial 的示例用法:

import tensorflow as tf
import tensorflow.io as tfio
...
def parse_image(img_path: str) -> dict:
...
image = tf.io.read_file(img_path)
tfio.experimental.image.decode_tiff(image)
...

【讨论】:

    【解决方案2】:

    目前没有 TIFF 图像的解码器。看看tensorflow/core/kernels,你就会看到

    decode_csv_op.cc
    decode_gif_op.cc
    decode_jpeg_op.cc
    decode_png_op.cc
    decode_raw_op.cc
    

    没有decode_tiff_op.cc。这可能是社区贡献的一个很好的目标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-16
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      相关资源
      最近更新 更多