File size: 1,022 Bytes
23e73f9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import os
from PIL import Image
from tqdm import tqdm

def align_to_16(path):
    print(f"🛠️  正在对 {path} 进行物理对齐(居中裁剪至16倍数)...")
    if not os.path.exists(path):
        print("❌ 目录不存在!")
        return
        
    files = sorted([f for f in os.listdir(path) if f.lower().endswith(('.png', '.jpg', '.jpeg'))])
    for f in tqdm(files):
        img_path = os.path.join(path, f)
        with Image.open(img_path) as img:
            w, h = img.size
            # 计算最大的 16 倍数
            new_w = (w // 16) * 16
            new_h = (h // 16) * 16
            
            if w != new_w or h != new_h:
                # 居中裁剪逻辑
                left = (w - new_w) // 2
                top = (h - new_h) // 2
                right = left + new_w
                bottom = top + new_h
                img.crop((left, top, right, bottom)).save(img_path)

# 执行物理修复
align_to_16("/root/autodl-tmp/dataset/deepblending_clean/DrJohnson/images")