本文目录导读:

方法1:使用Python + OpenCV
import cv2
import numpy as np
import os
from glob import glob
def adjust_contrast_curve(image, points):
"""
使用曲线调整对比度
points: [(x1,y1), (x2,y2), ...] 控制点坐标(0-255)
"""
# 创建查找表
x = [p[0] for p in points]
y = [p[1] for p in points]
# 插值生成完整的LUT
lut = np.interp(np.arange(256), x, y).astype('uint8')
# 应用查找表
return cv2.LUT(image, lut)
def batch_adjust_contrast(input_folder, output_folder, curve_points):
"""
批量调整对比度曲线
"""
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 支持的图片格式
extensions = ['*.jpg', '*.jpeg', '*.png', '*.bmp', '*.tiff']
image_files = []
for ext in extensions:
image_files.extend(glob(os.path.join(input_folder, ext)))
for img_path in image_files:
# 读取图片
img = cv2.imread(img_path)
if img is None:
continue
# 调整对比度(分别处理每个通道)
adjusted = np.zeros_like(img)
for i in range(3):
adjusted[:,:,i] = adjust_contrast_curve(img[:,:,i], curve_points)
# 保存结果
filename = os.path.basename(img_path)
output_path = os.path.join(output_folder, filename)
cv2.imwrite(output_path, adjusted)
print(f"处理完成: {filename}")
# 使用示例 - S曲线(增强对比度)
s_curve = [
(0, 0), # 保持黑点
(64, 32), # 压暗阴影
(128, 128), # 保持中间调
(192, 224), # 提亮高光
(255, 255) # 保持白点
]
# 调用函数
batch_adjust_contrast(
input_folder="./input_images",
output_folder="./output_images",
curve_points=s_curve
)
方法2:使用Pillow (PIL)
from PIL import Image, ImageEnhance
import os
from pathlib import Path
def batch_adjust_contrast_curve_pillow(input_dir, output_dir, contrast_factor):
"""
使用Pillow批量调整对比度
"""
input_path = Path(input_dir)
output_path = Path(output_dir)
output_path.mkdir(exist_ok=True)
# 获取所有图片
image_extensions = ['.jpg', '.jpeg', '.png', '.bmp', '.tiff']
for img_file in input_path.iterdir():
if img_file.suffix.lower() in image_extensions:
# 打开图片
img = Image.open(img_file)
# 调整对比度
enhancer = ImageEnhance.Contrast(img)
enhanced = enhancer.enhance(contrast_factor)
# 保存图片
output_file = output_path / img_file.name
enhanced.save(output_file)
print(f"处理完成: {img_file.name}")
# 使用示例
batch_adjust_contrast_curve_pillow(
input_dir="./images",
output_dir="./enhanced_images",
contrast_factor=1.5 # 1.0为原始,>1增强,<1减弱
)
方法3:使用ImageMagick命令行
#!/bin/bash
# 批量调整对比度曲线(使用convert命令)
input_folder="./input"
output_folder="./output"
# 创建输出文件夹
mkdir -p "$output_folder"
# 处理所有图片
for img in "$input_folder"/*.{jpg,jpeg,png,bmp,tiff}; do
if [ -f "$img" ]; then
filename=$(basename "$img")
# 使用S曲线调整对比度
convert "$img" -sigmoidal-contrast 10,50% "$output_folder/$filename"
echo "处理完成: $filename"
fi
done
方法4:图形界面工具批量处理
Lightroom
- 导入所有图片
- 编辑一张图片的对比度曲线
- 同步设置到其他图片
Photoshop + 动作
- 录制调整对比度曲线的动作
- 文件 → 自动 → 批处理
- 选择源文件夹和目标文件夹
常用对比度曲线预设
# 1. 强对比度S曲线
strong_s_curve = [
(0, 0),
(50, 20),
(128, 128),
(200, 235),
(255, 255)
]
# 2. 柔和对比度
soft_contrast = [
(0, 10),
(64, 50),
(128, 128),
(192, 200),
(255, 245)
]
# 3. 复古胶片效果
vintage_curve = [
(0, 20),
(64, 60),
(128, 128),
(192, 200),
(255, 235)
]
# 4. 高对比度黑白效果
high_contrast_bw = [
(0, 0),
(50, 0),
(100, 50),
(155, 205),
(205, 255),
(255, 255)
]
批量处理GUI工具推荐
- FastStone Image Viewer - 支持批量调整曲线
- XnConvert - 免费的批量图片处理工具
- IrfanView - 支持批量处理插件
- BatchPhoto - 专业批量处理工具
选择最适合你需求的方法,Python适合需要精确控制的场景,GUI工具适合简单快速处理,Imagemagick适合命令行批量处理。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播