【发布时间】:2020-12-25 19:25:13
【问题描述】:
我有一组灰度 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
返回:
找到属于 2 个类的 14000 个文件。
(TensorSpec(shape=(None, 256, 256, 3), dtype=tf.float32, name=None), TensorSpec(shape=(None,), dtype=tf.int32, name=None))
图像使用 MATLAB 保存为灰度 png,我已使用 Linux 命令文件确认它们是灰度的:
$ file path/to/files/class_1/file_1.png
path/to/files/class_1/file_1.png:PNG 图像数据,256 x 256,8 位灰度,非隔行扫描
所以现在我需要告诉 image_dataset_from_directory 将这些文件加载为灰度,或者我需要将 3 通道张量 Dataset 对象转换为 1 通道张量。我该怎么做?
编辑:
关于磁盘上文件的更多信息(来自 ImageMagick):
$ identify -verbose path/to/files/class_1/file_1.png
Image: AI_Optrap/Samples/Set4/relaxed/HL60_normoxia_1_1.png
Format: PNG (Portable Network Graphics)
Mime type: image/png
Class: PseudoClass
Geometry: 256x256+0+0
Units: Undefined
Type: Grayscale
Base type: Grayscale
Endianess: Undefined
Colorspace: Gray
Depth: 8-bit
Channel depth:
gray: 8-bit
Channel statistics:
Pixels: 65536
Gray:
min: 0 (0)
max: 255 (1)
mean: 135.92 (0.533021)
standard deviation: 36.3709 (0.142631)
kurtosis: 1.51412
skewness: 0.035325
entropy: 0.87207
Colors: 256
【问题讨论】:
标签: python tensorflow keras png tensorflow-datasets