import cv2
import numpy as np
import os

# 读取输入图像
image = cv2.imread('input.jpg')

# 获取图像的尺寸
height, width = image.shape[:2]

# 创建一个全黑的掩码
mask = np.zeros((height, width), dtype=np.uint8)

# 定义曲线（例如，使用正弦函数）
x = np.arange(width)
# 调整曲线的频率和幅度
frequency = 2 * np.pi / width
amplitude = height / 4
y = (height / 2) + amplitude * np.sin(frequency * x)

# 绘制曲线以上的区域为白色
for i in range(width):
    cv2.line(mask, (i, 0), (i, int(y[i])), 255)

# 创建反掩码
mask_inv = cv2.bitwise_not(mask)

# 应用掩码得到第一张图片
img1 = cv2.bitwise_and(image, image, mask=mask)

# 应用反掩码得到第二张图片
img2 = cv2.bitwise_and(image, image, mask=mask_inv)

# 确保输出目录存在
output_dir = 'output'
if not os.path.exists(output_dir):
    os.makedirs(output_dir)

# 保存结果图片
cv2.imwrite(os.path.join(output_dir, 'output1.jpg'), img1)
cv2.imwrite(os.path.join(output_dir, 'output2.jpg'), img2)

print("图片已成功切割并保存到 'output' 目录下。")
