keras 使用image_dataset_from_directory加载灰度png将返回3通道Tensor

b91juud3  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(192)

我有一组灰度png图像,它们被分割到2个目录中。我使用image_dataset_from_directory将它们作为Dataset对象加载,如文档所示。当我使用element_spec检查加载的内容时,它显示图像有3个通道:

from tensorflow.keras.preprocessing import image_dataset_from_directory
Dataset = image_dataset_from_directory('path/to/files')
Dataset.element_spec

退货:
找到14000个文件,属于2个类。
(Tensor规范(形状=(无,256,256,3),dtype=tf.float32,名称=无),Tensor规范(形状=(无,),dtype=tf.int32,名称=无))
使用MATLAB将图像保存为灰度png,我已使用Linux命令文件确认它们是灰度图像:

$ file path/to/files/class_1/file_1.png

路径/到/文件/类_1/文件_1.png:PNG图像数据,256 x 256,8位灰度,非隔行扫描

现在我需要告诉image_dataset_from_directory将这些文件加载为灰度文件,或者需要将3通道TensorDataset对象转换为1通道Tensor。我该怎么做呢?

编辑:
有关使用identify(来自ImageMagick)识别磁盘上文件的详细信息:
一个二个一个一个

svmlkihl

svmlkihl1#

默认情况下,image_dataset_from_directory转换为3个通道。

tf.keras.preprocessing.image_dataset_from_directory(
    directory, labels='inferred', label_mode='int', class_names=None,
    color_mode='rgb', batch_size=32, image_size=(256, 256), shuffle=True, seed=None,
    validation_split=None, subset=None, interpolation='bilinear', follow_links=False
)

颜色模式:“灰度”、“rgb”、“rgba”之一。默认值:“rgb”。图像是否将被转换为具有1、3或4个通道。

所以就用这句话:

Dataset = image_dataset_from_directory('path/to/files', color_mode='grayscale')

现在您的图像将转换为(None, 256, 256, 1)

相关问题