本文目录导读:

使用 Python + Pillow(推荐)
import os
from PIL import Image
import colorsys
def adjust_hue(image, hue_shift):
"""调整图片色相"""
# 转换为RGBA模式以保留透明度
if image.mode != 'RGBA':
image = image.convert('RGBA')
# 获取像素数据
pixels = list(image.getdata())
new_pixels = []
for pixel in pixels:
r, g, b, a = pixel
# 转换为HSV
h, s, v = colorsys.rgb_to_hsv(r/255, g/255, b/255)
# 调整色相
h = (h + hue_shift) % 1.0
# 转回RGB
r, g, b = colorsys.hsv_to_rgb(h, s, v)
new_pixels.append((int(r*255), int(g*255), int(b*255), a))
# 创建新图像
new_image = Image.new('RGBA', image.size)
new_image.putdata(new_pixels)
return new_image
def batch_adjust_hue(input_folder, output_folder, hue_shift=0.1):
"""批量调整色相"""
# 创建输出文件夹
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 支持的图片格式
supported_formats = ('.jpg', '.jpeg', '.png', '.bmp', '.tiff')
# 遍历文件夹中的所有图片
for filename in os.listdir(input_folder):
if filename.lower().endswith(supported_formats):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, filename)
try:
# 打开图片
img = Image.open(input_path)
# 调整色相
adjusted_img = adjust_hue(img, hue_shift)
# 保存图片
adjusted_img.save(output_path)
print(f"已处理: {filename}")
except Exception as e:
print(f"处理 {filename} 时出错: {e}")
# 使用示例
if __name__ == "__main__":
input_folder = "images_input" # 输入文件夹
output_folder = "images_output" # 输出文件夹
hue_shift = 0.2 # 色相偏移量(0-1之间,0.2表示偏移72度)
batch_adjust_hue(input_folder, output_folder, hue_shift)
使用 OpenCV
import cv2
import numpy as np
import os
from pathlib import Path
def adjust_hue_cv2(image, hue_shift):
"""使用OpenCV调整色相"""
# 转换为HSV
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# 调整色相
hsv[:, :, 0] = (hsv[:, :, 0] + hue_shift) % 180
# 转回BGR
return cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
def batch_adjust_hue_cv2(input_folder, output_folder, hue_shift=30):
"""批量调整色相(OpenCV版本)"""
Path(output_folder).mkdir(parents=True, exist_ok=True)
supported_formats = ('.jpg', '.jpeg', '.png', '.bmp', '.tiff')
for path in Path(input_folder).glob('*'):
if path.suffix.lower() in supported_formats:
try:
# 读取图片
img = cv2.imread(str(path))
if img is not None:
# 调整色相
adjusted = adjust_hue_cv2(img, hue_shift)
# 保存
output_path = Path(output_folder) / path.name
cv2.imwrite(str(output_path), adjusted)
print(f"已处理: {path.name}")
except Exception as e:
print(f"处理 {path.name} 时出错: {e}")
# 使用示例
if __name__ == "__main__":
input_folder = "images_input"
output_folder = "images_output"
hue_shift = 30 # 色相偏移(0-180,30表示偏移30度)
batch_adjust_hue_cv2(input_folder, output_folder, hue_shift)
批处理脚本(Windows)
创建 adjust_hue.bat 文件:
@echo off
echo 正在批量调整图片色相...
echo 请确保已安装 ImageMagick
:: 设置参数
set INPUT_FOLDER=images_input
set OUTPUT_FOLDER=images_output
set HUE_SHIFT=30
:: 创建输出文件夹
if not exist "%OUTPUT_FOLDER%" mkdir "%OUTPUT_FOLDER%"
:: 使用 ImageMagick 批量处理
echo 处理中...
for %%f in ("%INPUT_FOLDER%\*.jpg" "%INPUT_FOLDER%\*.png") do (
echo 正在处理: %%~nxf
magick "%%f" -modulate 100,100,%HUE_SHIFT% "%OUTPUT_FOLDER%\%%~nxf"
)
echo 处理完成!
pause
使用 Bash 脚本(Linux/Mac)
#!/bin/bash
# 批量调整图片色相的Bash脚本
# 需要安装 ImageMagick
INPUT_FOLDER="images_input"
OUTPUT_FOLDER="images_output"
HUE_SHIFT=30 # 色相偏移值(0-200)
# 创建输出文件夹
mkdir -p "$OUTPUT_FOLDER"
# 处理图片
for img in "$INPUT_FOLDER"/*.{jpg,jpeg,png,bmp,tiff}; do
if [ -f "$img" ]; then
filename=$(basename "$img")
echo "处理中: $filename"
# 使用 ImageMagick 调整色相
convert "$img" -modulate 100,100,$HUE_SHIFT "$OUTPUT_FOLDER/$filename"
fi
done
echo "批量处理完成!"
安装依赖
Python 依赖安装:
pip install Pillow # 或 pip install opencv-python
ImageMagick 安装:
- Windows: 下载安装包 https://imagemagick.org/script/download.php
- Linux:
sudo apt-get install imagemagick - Mac:
brew install imagemagick
使用建议
-
选择合适的工具:
- 简单任务:ImageMagick 批处理
- 需要精细控制:Python + Pillow
- 视频处理:OpenCV
-
色相值说明:
- Pillow(HSV):0-1之间的值
- OpenCV:0-180之间的值
- ImageMagick:0-200之间的值
-
备份原图:批量处理前建议先备份原始图片
-
测试:先处理少量图片测试效果,再批量处理全部
选择最适合你的方法,有任何问题随时问我!
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播