使用代码取大量2*2像素图片各通道均值,存于Excel文件中。

任务是取下图RGB各个通道的均值及标签(R, G,B,Label),其中标签由图片存放的文件夹标识。由于2*2像素图片较多,所以将结果放置于Excel表格中,之后使用SVM对他们进行分类。
python 复制代码
from PIL import Image
import os
import pandas as pd

# 输入文件夹路径
input_folder = "./data/1"

# 获取文件夹中所有图片文件的路径
image_files = [f for f in os.listdir(input_folder) if f.endswith('.png') or f.endswith('.jpg')]

# 存储每张图片的信息
image_data = []

# 遍历每张图片
for image_file in image_files:
    # 构建图片文件的完整路径
    image_path = os.path.join(input_folder, image_file)

    # 打开图片
    image = Image.open(image_path)

    # 获取所有像素的RGB或RGBA值,具体取决于图像模式
    pixels = list(image.getdata())

    # 将RGB或RGBA值拆分成各个通道
    if image.mode == 'RGB':
        r_values, g_values, b_values = zip(*pixels)
    elif image.mode == 'RGBA':
        r_values, g_values, b_values, _ = zip(*pixels)
    else:
        raise ValueError("Unsupported image mode: {}".format(image.mode))

    # 计算每个通道的均值
    r_mean = sum(r_values) / len(r_values)
    g_mean = sum(g_values) / len(g_values)
    b_mean = sum(b_values) / len(b_values)

    # 存储图片信息
    image_info = {'Filename': image_file, 'R_mean': r_mean, 'G_mean': g_mean, 'B_mean': b_mean}

    # 添加到图片数据列表
    image_data.append(image_info)

# 创建Pandas数据框
df = pd.DataFrame(image_data)

# 将数据框写入Excel文件
output_excel_path = "./data/output.xlsx"
df.to_excel(output_excel_path, index=False)

print(f"数据已写入到 {output_excel_path}")

结果(文件名抽查核对之后,改为了Label列)

相关推荐
梦在远山后2 分钟前
Python 中字符串常用写法
人工智能·后端
YOLO数据集集合8 分钟前
标准汽车行驶工况数据集(21种典型工况)| 汽车工况 行驶循环 油耗测试 排放认证 车辆仿真 交通能耗 标准数据集8018期
人工智能·目标检测·汽车·标准汽车行驶工况·汽车工况数据集·21
科技小登8 分钟前
重大活动安全保障方案怎么选?重保服务、攻防演练、应急响应与安全意识培训实战与边界
数据库·人工智能·安全
CoderYanger12 分钟前
A.每日一题:1140. 石子游戏 II
java·程序人生·算法·leetcode·游戏·职场和发展·深度优先
windliang13 分钟前
Agent Loop 的 while 循环什么时候开始不够用
人工智能·面试·开源
禾高网络14 分钟前
养老系统开发:背景、架构与养老行业展望
java·大数据·人工智能·小程序·架构
小雨笙笙15 分钟前
机器学习:评估模型与选择
人工智能·算法·机器学习
lifallen19 分钟前
长任务怎样选择遗忘:clearing、compaction 与 memory
人工智能·学习·ai·ai编程
高亦真19 分钟前
今天是学习嵌入式的第35天
linux·学习·算法
Luhui Dev20 分钟前
大角几何如何保证图片导出尺寸一致性?
人工智能·数学·ai·luhuidev