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

如何批量处理文件夹内500张图像并绘制亮度均值直方图?

批量处理图像亮度均值并绘制直方图方案

没问题,我来帮你把单张图像的亮度计算逻辑扩展成批量处理方案,同时实现直方图绘制,直接上干货:

1. 先确认需要的依赖库

首先确保你已经安装了这些必要的库,如果没有的话,执行以下命令安装:

pip install opencv-python numpy matplotlib

2. 完整代码实现

下面是整合后的批量处理代码,我加了详细注释,方便你理解每一步:

import cv2
import numpy as np
import os
import matplotlib.pyplot as plt

# 设置你的图像文件夹路径,替换成实际路径
image_folder = "path/to/your/images"
# 初始化列表存储所有图像的亮度均值
brightness_values = []

# 遍历文件夹中的所有JPG图像
for filename in os.listdir(image_folder):
    # 只处理JPG格式的文件(注意区分大小写,根据你的实际文件后缀调整)
    if filename.lower().endswith(".jpg"):
        img_path = os.path.join(image_folder, filename)
        try:
            # 读取图像
            img = cv2.imread(img_path)
            if img is None:
                print(f"警告:无法读取图像 {filename},跳过")
                continue
            
            # 计算亮度均值,和你单张的逻辑一致
            avg_color_per_row = np.average(img, axis=0)
            avg_color = np.average(avg_color_per_row, axis=0)
            brightness = sum(avg_color) / 3
            
            # 将亮度值加入列表
            brightness_values.append(brightness)
            print(f"已处理 {filename},亮度均值:{brightness:.2f}")
        except Exception as e:
            print(f"处理 {filename} 时出错:{str(e)}")

# 绘制亮度均值直方图
plt.figure(figsize=(10, 6))
# 可以根据你的数据分布调整bins的数量,比如20、30
plt.hist(brightness_values, bins=20, edgecolor='black')
plt.title("图像亮度均值分布直方图")
plt.xlabel("亮度均值")
plt.ylabel("图像数量")
plt.grid(axis='y', alpha=0.75)
# 显示图像或者保存到文件
plt.show()
# 如果需要保存直方图,取消下面的注释
# plt.savefig("brightness_histogram.png")

3. 关键细节说明

  • 文件遍历:用os.listdir遍历文件夹,同时通过后缀过滤只处理JPG图像,避免误处理其他文件;也可以用glob模块更简洁,比如glob.glob(os.path.join(image_folder, "*.JPG")),适合文件名大小写固定的情况。
  • 异常处理:加入try-except和img is None的判断,防止个别损坏的图像导致程序中断,同时给出明确提示。
  • 直方图优化:bins参数可以根据你的实际亮度分布调整,比如如果亮度值集中在某个区间,增加bins数量能更清晰展示分布;figsize用来调整图的大小。
  • 数据后续使用:brightness_values列表里存储了所有有效图像的亮度均值,你可以基于这个列表进一步筛选有效图像(比如剔除低于/高于某个阈值的图像)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:36:32