【发布时间】:2019-06-05 15:58:51
【问题描述】:
如何将在 argb 像素通道中编码 float32 值的 png 图像解码为 float32 张量?比如KITTI数据集提供的深度图。
功能
tf.image.decode_png()
只能给我 uint8 或 uint16 值,而不是正确的 float32 值。
是否有任何解决方法或解决方案来获得这样的 float32 tensorflow 张量?
编辑: 因此,在 png 中,每个通道都存储一个 uint8 值。所有 4 个通道 (argb) 一起构成一个 float32 值。这实际上可以用 PIL 和 numpy 轻松读取(此代码由 KITTI 数据集提供):
from PIL import Image
import numpy as np
depth_png = np.array(Image.open(filename), dtype=int)
depth = depth_png.astype(np.float) / 256.
我猜这里的 int 至少是一个 int32,以便保留信息。
但是,我正在寻找一种方法来以某种方式将其转换为我可以在数据集中动态加载的张量流张量。
【问题讨论】:
-
您在寻找
.png到tfrecords的转换吗? -
我正在寻找一种方法来获取存储在 png 的每个通道中的 4 个 uint8 值,以将它们解码为单个 float32 张量。
标签: tensorflow