import cv2
import os

# 定义输入文件夹路径和输出文件夹路径
input_folder = 'images'  # 替换为你的输入文件夹路径
output_folder_left = 'left'
output_folder_right = 'right'

# 创建输出文件夹，如果不存在则创建
if not os.path.exists(output_folder_left):
    os.makedirs(output_folder_left)
if not os.path.exists(output_folder_right):
    os.makedirs(output_folder_right)

# 遍历输入文件夹中的所有图片
for filename in os.listdir(input_folder):
    if filename.endswith(".png") or filename.endswith(".jpg"):
        # 构建图片的完整路径
        img_path = os.path.join(input_folder, filename)
        
        # 读取图片
        image = cv2.imread(img_path)
        
        if image is None:
            print(f"无法读取图像文件: {filename}")
            continue
        
        # 获取图片的高度和宽度
        height, width, _ = image.shape
        
        # 计算左右图像的宽度
        half_width = width // 2
        
        # 切割出左半部分和右半部分图像
        left_image = image[:, :half_width]
        right_image = image[:, half_width:]
        
        # 构建保存路径
        left_image_path = os.path.join(output_folder_left, f"left_{filename}")
        right_image_path = os.path.join(output_folder_right, f"right_{filename}")
        
        # 保存左右图像
        cv2.imwrite(left_image_path, left_image)
        cv2.imwrite(right_image_path, right_image)
        
        print(f"已保存：{left_image_path} 和 {right_image_path}")

print("所有图像已处理完成！")
