本文目录导读:

方法1:使用PIL/Pillow(基础调整)
import os
from PIL import Image, ImageEnhance
import glob
def batch_adjust_sharpness(input_dir, output_dir, sharpness_factor=2.0):
"""
批量调整图片清晰度
参数:
input_dir: 输入图片文件夹路径
output_dir: 输出图片文件夹路径
sharpness_factor: 清晰度因子 (1.0=原始, >1.0=更锐利, <1.0=更模糊)
"""
# 创建输出目录
os.makedirs(output_dir, exist_ok=True)
# 支持的图片格式
extensions = ['*.jpg', '*.jpeg', '*.png', '*.bmp', '*.tiff']
for ext in extensions:
for filepath in glob.glob(os.path.join(input_dir, ext)):
try:
# 打开图片
img = Image.open(filepath)
# 创建清晰度增强器
enhancer = ImageEnhance.Sharpness(img)
# 调整清晰度
enhanced_img = enhancer.enhance(sharpness_factor)
# 保存图片
filename = os.path.basename(filepath)
output_path = os.path.join(output_dir, filename)
enhanced_img.save(output_path)
print(f"已处理: {filename} → 清晰度因子: {sharpness_factor}")
except Exception as e:
print(f"处理 {filepath} 时出错: {e}")
# 使用示例
if __name__ == "__main__":
# 配置参数
input_folder = "input_images" # 输入文件夹
output_folder = "output_images" # 输出文件夹
sharpness = 2.0 # 清晰度因子 (推荐1.5-3.0)
batch_adjust_sharpness(input_folder, output_folder, sharpness)
方法2:使用OpenCV(更高级的处理)
import cv2
import os
import glob
def batch_sharpen_opencv(input_dir, output_dir, method='unsharp', strength=1.0):
"""
使用OpenCV批量锐化图片
参数:
input_dir: 输入文件夹
output_dir: 输出文件夹
method: 锐化方法 ('unsharp', 'laplacian', 'custom')
strength: 锐化强度 (0.5-2.0)
"""
os.makedirs(output_dir, exist_ok=True)
# 自定义锐化核
custom_kernel = np.array([
[0, -1, 0],
[-1, 5, -1],
[0, -1, 0]
])
# 高强度的锐化核
strong_kernel = np.array([
[-1, -1, -1],
[-1, 9, -1],
[-1, -1, -1]
])
extensions = ['*.jpg', '*.jpeg', '*.png', '*.bmp']
for ext in extensions:
for filepath in glob.glob(os.path.join(input_dir, ext)):
try:
# 读取图片
img = cv2.imread(filepath)
if img is None:
continue
# 根据方法选择处理方式
if method == 'unsharp':
# 高斯模糊
blurred = cv2.GaussianBlur(img, (0, 0), 3)
# 反锐化掩蔽
sharpened = cv2.addWeighted(img, 1.0 + strength,
blurred, -strength, 0)
elif method == 'laplacian':
# 拉普拉斯锐化
laplacian = cv2.Laplacian(img, cv2.CV_64F)
sharpened = cv2.convertScaleAbs(img - strength * laplacian)
elif method == 'custom':
# 自定义核锐化
kernel = custom_kernel if strength < 1.5 else strong_kernel
kernel = kernel * strength
sharpened = cv2.filter2D(img, -1, kernel)
# 保存图片
filename = os.path.basename(filepath)
output_path = os.path.join(output_dir, filename)
cv2.imwrite(output_path, sharpened)
print(f"已处理: {filename} → 方法: {method}, 强度: {strength}")
except Exception as e:
print(f"处理 {filepath} 时出错: {e}")
# 使用示例
if __name__ == "__main__":
import numpy as np
input_folder = "input_images"
output_folder = "output_images"
# 使用反锐化掩蔽方法,强度1.5
batch_sharpen_opencv(input_folder, output_folder,
method='unsharp', strength=1.5)
方法3:使用PIL的详细版本(支持预览和调整)
import os
from PIL import Image, ImageEnhance, ImageFilter
import glob
class ImageSharpener:
def __init__(self, input_dir, output_dir):
self.input_dir = input_dir
self.output_dir = output_dir
os.makedirs(output_dir, exist_ok=True)
def enhance_sharpness(self, factor=2.0):
"""使用ImageEnhance增强清晰度"""
return self._process_images('enhance', factor)
def filter_sharpen(self):
"""使用Filter的锐化效果"""
return self._process_images('filter')
def smart_sharpen(self, radius=2, percent=150):
"""智能锐化(先模糊再叠加)"""
return self._process_images('smart', {'radius': radius, 'percent': percent})
def _process_images(self, method, params=None):
processed = 0
failed = 0
extensions = ['*.jpg', '*.jpeg', '*.png', '*.bmp', '*.tiff']
for ext in extensions:
for filepath in glob.glob(os.path.join(self.input_dir, ext)):
try:
img = Image.open(filepath).convert('RGB')
if method == 'enhance':
enhancer = ImageEnhance.Sharpness(img)
result = enhancer.enhance(params)
elif method == 'filter':
result = img.filter(ImageFilter.SHARPEN)
# 多次锐化
result = result.filter(ImageFilter.SHARPEN)
elif method == 'smart':
# 创建模糊版本
blurred = img.filter(ImageFilter.GaussianBlur(radius=params['radius']))
# 混合原图和模糊图
result = Image.blend(img, blurred,
(100 - params['percent']) / 100)
# 保存结果
filename = os.path.basename(filepath)
name, ext = os.path.splitext(filename)
output_path = os.path.join(self.output_dir, f"{name}_sharp{ext}")
result.save(output_path, quality=95)
print(f"✓ 处理成功: {filename}")
processed += 1
except Exception as e:
print(f"✗ 处理失败: {filepath}")
print(f" 错误: {e}")
failed += 1
print(f"\n处理完成: {processed} 成功, {failed} 失败")
return processed, failed
# 使用示例
if __name__ == "__main__":
sharpener = ImageSharpener("input_images", "output_images")
# 方法1: 基础增强
sharpener.enhance_sharpness(factor=2.5)
# 方法2: 滤镜锐化
# sharpener.filter_sharpen()
# 方法3: 智能锐化
# sharpener.smart_sharpen(radius=1, percent=130)
安装依赖
pip install Pillow opencv-python numpy
使用说明
-
创建文件夹结构:
project/ ├── input_images/ # 放入要处理的图片 ├── output_images/ # 处理后的图片会自动保存到这里 └── sharpness_script.py -
参数调整建议:
sharpness_factor:1.0为原始,1.5-3.0为常用范围- 首次使用时建议先测试1-2张图片
- 过高的清晰度会产生噪点
-
适用场景:
- 批量处理数码照片
- 扫描文档的清晰度提升
- 图像预处理
选择适合你需求的方法,调整参数后即可批量处理图片!
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播