import os
from PIL import Image
import numpy as np

input_dir = 'Data/ann_dir'         # 输入标签图所在目录
output_dir = 'Data/labels/train' # YOLO 格式输出目录

os.makedirs(output_dir, exist_ok=True)

for filename in os.listdir(input_dir):
    if not filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp')):
        continue

    input_path = os.path.join(input_dir, filename)
    output_path = os.path.join(output_dir, os.path.splitext(filename)[0] + '.png')

    # 打开图像并转为 RGB，再提取 R 通道（等价于 G、B）
    img_rgb = Image.open(input_path).convert('RGB')
    r_channel = img_rgb.split()[0]  # 或使用 .getchannel('R')

    # 保存为 8-bit 单通道 PNG
    r_channel.save(output_path, format='PNG')
    print(f"Saved: {output_path}")

print("✅ 所有标签图已转换为 8-bit 单通道灰度图。")
