Per*_*azi 3 python deep-learning keras tensorflow
我正在使用ImageDataGenerator. 我需要将每个灰度图像的内容复制到 3 个通道中。我尝试了以下代码,但似乎不起作用:
def grayscale_to_rgb(images, channel_axis=-1):
images= K.expand_dims(images, axis=channel_axis)
tiling = [1] * 4 # 4 dimensions: B, H, W, C
tiling[channel_axis] *= 3
images= K.tile(images, tiling)
return images
train_images_orign= grayscale_to_rgb(train_images_orign)
valid_images_orign= grayscale_to_rgb(valid_images_orign)
test_images_orign= grayscale_to_rgb(test_images_orign)
x_train, y_train = next(train_images_orign)
x_valid, y_valid = next(valid_images_orign)
x_test, y_test = next(test_images_orign)
Run Code Online (Sandbox Code Playgroud)
我应该朝哪个方向来实现这一目标?
更新:事实证明,load_imgKeras中的函数已经以这样的方式实现,如果正在加载的图像的颜色模式和给定的color_mode参数(默认为'RGB')不同,则图像将被转换为 given color_mode。因此,在这种情况下,灰度图像将自动转换为 RGB。
您也可以使用 的preprocessing_function参数ImageDataGenerator(假设您使用的是color_mode='grayscale',否则上面的注释适用):
import numpy as np
def gray_to_rgb(img):
return np.repeat(img, 3, 2)
generator = ImageDataGenerator(..., preprocessing_function=gray_to_rgb)
train_gen = generator.flow_from_directory(color_mode='grayscale', ...)
Run Code Online (Sandbox Code Playgroud)
请注意,此功能在任何图像增强后应用:
preprocessing_function:将隐含在每个输入上的函数。该函数将在图像调整大小和增强后运行。该函数应采用一个参数:一张图像(等级为 3 的 Numpy 张量),并应输出具有相同形状的 Numpy 张量。
| 归档时间: |
|
| 查看次数: |
4479 次 |
| 最近记录: |