本文目录导读:

- 方法一:使用Python + PIL (Pillow) 脚本(推荐,灵活性高)
- 方法二:使用ImageMagick命令行(效率高,适合大量图片)
- 方法三:使用Photoshop脚本(Actions + Batch)
- 方法四:使用IrfanView(Windows轻量工具)
- 方法五:Python + OpenCV(高级控制)
- 建议选择:
使用Python + PIL (Pillow) 脚本(推荐,灵活性高)
这是最灵活的方式,可以精确控制对比度并批量处理。
import os
from PIL import Image, ImageEnhance
# ===== 配置参数 =====
input_folder = "./input_images" # 输入图片文件夹
output_folder = "./output_images" # 输出图片文件夹
contrast_factor = 1.5 # 对比度倍数:1.0=原图, >1增强, <1减弱
file_extensions = ('.jpg', '.jpeg', '.png', '.bmp', '.tiff') # 处理的文件格式
# ===================
# 创建输出文件夹
os.makedirs(output_folder, exist_ok=True)
# 遍历输入文件夹
for filename in os.listdir(input_folder):
if filename.lower().endswith(file_extensions):
# 读取图片
img_path = os.path.join(input_folder, filename)
try:
img = Image.open(img_path)
# 调整对比度
enhancer = ImageEnhance.Contrast(img)
img_adjusted = enhancer.enhance(contrast_factor)
# 保存图片(保持原格式)
output_path = os.path.join(output_folder, filename)
img_adjusted.save(output_path)
print(f"处理完成: {filename}")
except Exception as e:
print(f"处理失败 {filename}: {e}")
print("全部处理完成!")
安装依赖:
pip install Pillow
关键参数说明:
contrast_factor = 1.5:数值越大对比度越强(建议范围0.5~2.0)file_extensions:根据需要修改支持的图片格式
使用ImageMagick命令行(效率高,适合大量图片)
ImageMagick是强大的命令行图像处理工具,适合批量操作。
Windows:
:: 将当前文件夹所有jpg图片对比度增强50% magick mogrify -contrast-stretch 15% *.jpg
Linux/macOS:
# 增强对比度(黑色扩展15%,白色扩展15%) mogrify -contrast-stretch 15% *.jpg # 或者使用更精确的对比度调整(0~100%) mogrify -modulate 100,150,100 *.jpg # 亮度100%,对比度150%,色相100%
安装ImageMagick:
- Windows:下载安装包 https://imagemagick.org/
- macOS:
brew install imagemagick - Linux:
sudo apt install imagemagick
使用Photoshop脚本(Actions + Batch)
-
录制动作:
- 打开一张图片 → 窗口 → 动作
- 新建动作 → 开始录制
- 图像 → 调整 → 亮度/对比度(或色阶/曲线)
- 调整参数 → 停止录制
-
批量处理:
- 文件 → 自动 → 批处理
- 选择动作和源文件夹
- 目标选择“文件夹”并设置输出路径
使用IrfanView(Windows轻量工具)
- 打开IrfanView → 文件 → 批处理/转换
- 添加所有需要处理的图片
- 勾选“使用高级选项”
- 点击“高级” → 图像 → 对比度
- 设置对比度值(-100~100)
- 选择输出文件夹,点击“执行”
Python + OpenCV(高级控制)
如果需要更复杂的对比度调整(如直方图均衡化):
import cv2
import os
import numpy as np
input_folder = "./input"
output_folder = "./output"
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.lower().endswith(('.jpg', '.png')):
img = cv2.imread(os.path.join(input_folder, filename))
# 方法1:简单调整对比度(alpha=对比度, beta=亮度)
img_adjusted = cv2.convertScaleAbs(img, alpha=1.5, beta=0)
# 方法2:自动对比度增强(直方图均衡化)
# img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# img_eq = cv2.equalizeHist(img_gray)
# img_adjusted = cv2.cvtColor(img_eq, cv2.COLOR_GRAY2BGR)
cv2.imwrite(os.path.join(output_folder, filename), img_adjusted)
print(f"处理: {filename}")
建议选择:
| 需求场景 | 推荐方法 |
|---|---|
| 简单快速批量处理 | ImageMagick (方法二) |
| 需要精确控制参数 | Python PIL (方法一) |
| 需要图形界面 | IrfanView (方法四) |
| 已有Photoshop | 动作+批处理 (方法三) |
| 需要高级图像处理 | OpenCV (方法五) |
注意事项:
- 操作前最好备份原始图片
- 先处理几张测试效果,再全量执行
- 不同图片格式(JPEG/PNG)对比度调整效果可能略有差异