You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将1000张图片批量转换为灰度图?(TensorFlow代码改造)

图片转灰度图及批量处理方案

一、单张图片转灰度图的方法

  • 加载时直接读取灰度图:使用image.load_img时指定color_mode="grayscale",加载后的图片直接为单通道灰度格式。
  • RGB转灰度图(TensorFlow内置方法):通过tf.image.rgb_to_grayscale()函数将3通道RGB图转换为1通道灰度图,可搭配tf.squeeze()去掉冗余维度(按需选择)。
  • 手动计算灰度值:依据标准加权公式 Y = 0.2989*R + 0.5870*G + 0.1140*B 对RGB通道加权求和,生成单通道灰度图。

二、批量转换灰度图的代码改造

针对你提供的加载代码,给出两种高效改造方案:

方案1:加载时直接读取灰度图(推荐,更省资源)

直接在加载阶段指定灰度模式,无需后续转换:

import tensorflow as tf
from tensorflow.keras.utils import img_to_array
import numpy as np
from tqdm import tqdm

df_image = []
for i in tqdm(range(df.shape[0])):
    img = tf.keras.utils.load_img(
        '/content/drive/MyDrive/Predict DF from Image of Chemical Structure/2D image/'+df['image_name'][i]+'.png',
        target_size=(100,100),
        color_mode="grayscale"
    )
    img = img_to_array(img)  # 此时shape为(100,100,1)
    img = img / 255.0
    df_image.append(img)
X = np.array(df_image)

注:target_size设为(100,100)时,img_to_array会自动扩展为(100,100,1);也可直接写(100,100,1),效果一致。

方案2:加载RGB后转换为灰度图

若需保留原RGB加载逻辑,再执行灰度转换:

import tensorflow as tf
from tensorflow.keras.utils import img_to_array
import numpy as np
from tqdm import tqdm

df_image = []
for i in tqdm(range(df.shape[0])):
    img = tf.keras.utils.load_img(
        '/content/drive/MyDrive/Predict DF from Image of Chemical Structure/2D image/'+df['image_name'][i]+'.png',
        target_size=(100,100,3)
    )
    img = img_to_array(img)
    img = img / 255.0
    # 转换为灰度图,shape变为(100,100,1)
    img_gray = tf.image.rgb_to_grayscale(img)
    # 若需去掉最后一个维度(变为(100,100)),取消下方注释
    # img_gray = tf.squeeze(img_gray, axis=-1)
    df_image.append(img_gray.numpy())  # 转为numpy数组后加入列表
X = np.array(df_image)

补充:手动计算灰度值的替代转换步骤:

# 按加权公式计算,shape变为(100,100)
img_gray = 0.2989 * img[...,0] + 0.5870 * img[...,1] + 0.1140 * img[...,2]
# 按需扩展维度变回(100,100,1)
# img_gray = np.expand_dims(img_gray, axis=-1)

内容的提问来源于stack exchange,提问作者Pranab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 20:25:47