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

如何将文件夹内所有图片数据通过cv2处理后批量导出为CSV文件

批量图片转存CSV实现方案

前置依赖

你需要提前安装好opencv-python、pandas、numpy三个库,导入对应模块即可实现批量操作。

操作逻辑

  • 遍历指定文件夹下所有jpg后缀的图片文件,过滤其他非目标文件
  • 逐个读取图片,按需调整格式(转灰度、BGR转RGB等)后拉平为一维像素数组
  • 按需求写入CSV:支持每张图片单独存一个CSV,或所有图片统一存入同一个CSV

可运行代码示例

import cv2
import os
import pandas as pd
import numpy as np

# 替换为你自己的图片存储文件夹路径
IMG_FOLDER_PATH = "Output_Images"
# 存储所有图片数据的列表,用于所有图片存同一个CSV的场景
total_img_data = []

for file_name in os.listdir(IMG_FOLDER_PATH):
    # 只处理jpg格式的图片,适配你当前的文件命名规则
    if not file_name.endswith(".jpg"):
        continue
    # 拼接完整图片路径
    full_img_path = os.path.join(IMG_FOLDER_PATH, file_name)
    # 读取图片,若需要读灰度图可加参数 cv2.IMREAD_GRAYSCALE
    img = cv2.imread(full_img_path)
    # 可选操作:cv2默认读取为BGR格式,需要转RGB可打开下面注释
    # img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    # 三维图片数组拉平为一维像素序列
    flatten_pixel = img.flatten()

    # 场景1:每张图片单独存为一个CSV,打开下面注释即可
    # csv_name = file_name.replace(".jpg", ".csv")
    # pd.DataFrame(flatten_pixel).to_csv(csv_name, index=False, header=False)

    # 场景2:所有图片存入同一个CSV,第一列记录原图片文件名
    total_img_data.append([file_name] + flatten_pixel.tolist())

# 场景2的统一写入逻辑
if total_img_data:
    # 生成列名:第一列为图片文件名,后续每列对应一个像素值
    col_list = ["img_filename"] + [f"pixel_{i}" for i in range(len(total_img_data[0])-1)]
    pd.DataFrame(total_img_data, columns=col_list).to_csv("all_images_result.csv", index=False)

注意事项

高分辨率图片拉平后列数较多,生成的CSV体积会远大于原图片总大小,若没有强制CSV要求,更推荐用npy格式存储图片数组
如果需要减少数据量,可以在读图时转灰度图,或提前对图片做缩放处理后再写入CSV

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 17:06:08