微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用TensorFlow Keras预处理加载图像时像素值发生变化

如何解决使用TensorFlow Keras预处理加载图像时像素值发生变化

我使用函数tf.keras.preprocessing.image_dataset_from_directory(),当我检查加载的图像的内容时,我发现它包含随机像素值,与原始图像不一致。

这就是我所说的功能

ds = tf.keras.preprocessing.image_dataset_from_directory(
    images_path,label_mode=None,shuffle=False,seed=None,image_size=(input_height,input_width),batch_size=batch_size
)

然后我对数据集的第一个元素进行采样,如下所示:

it = iter(ds)
img = next(it).numpy()

生成的图像包含类似164.3462的值,这没有意义,因为原始图像文件只有整数作为像素值。如果要转换为float32,我希望所有像素的值的小数部分都应为.0。

我错过了什么吗?我只想以原始值或以.0开头的原始值加载图像,以防需要float32。

怎么了?

解决方法

那是因为在尝试将图像调整为image_dataset_from_directory时,bilinear使用默认的'(input_height,input_width)'插值。检查this链接以了解插值方法的其他选项。

,

要使用原始值,请使用“最近”作为插值来调整图像大小。

ds = tf.keras.preprocessing.image_dataset_from_directory(
    images_path,label_mode=None,shuffle=False,seed=None,interpolation='nearest',image_size=(input_height,input_width),batch_size=batch_size
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。