自己复制代码或者双击我写好的合成图片.py
企业微信截图_17042614122629.png (110.93 KB, 下载次数: 0)
下载附件
2024-1-3 13:57 上传
下面是效果图,将明日香作为底层图片合成其他图片
background.png (172.14 KB, 下载次数: 0)
下载附件
2024-1-3 13:53 上传
合成后得到:
4.jpg (239.15 KB, 下载次数: 0)
下载附件
2024-1-3 13:59 上传
6.jpg (142.05 KB, 下载次数: 0)
下载附件
2024-1-3 13:59 上传
下面是代码,也可以直接下载我准备好的压缩包
[Python] 纯文本查看 复制代码
import os
import cv2
import importlib
import sys
initial_working_directory = os.getcwd() # 保存初始工作目录
# 定义要使用的库
required_libraries = ['opencv-python', 'numpy']
# 检查并安装缺失的库
for library in required_libraries:
try:
importlib.import_module(library)
except ImportError:
print(f"缺少库 {library},正在安装...")
os.system(f'pip install {library}')
# 获取用户输入来定义常量的值
ALPHA_WEIGHT = float(input("请输入 底层图片的权重 值(默认为 0.3): ") or 0.3)
BETA_WEIGHT = float(input("请输入 顶层图片的权重(默认为 0.7): ") or 0.7)
GAMMA_WEIGHT = float(input("请输入 亮度(设置后,每个图片像素的值将与该值相加) 的值(默认为 0): ") or 0)
# 获取可执行文件所在的临时目录
#BASE_DIR = getattr(sys, '_MEIPASS', os.path.abspath(os.path.dirname(__file__)))
# 加载底层图片
bottom_image_path = os.path.abspath(os.path.join(initial_working_directory, 'background.png'))
#bottom_image_path = os.path.abspath(os.path.join(BASE_DIR, 'background.png'))
bottom_image = cv2.imread(bottom_image_path)
# 构建底层图片路径
# bottom_image_path = os.path.join(BASE_DIR, 'background.png')
# bottom_image = cv2.imread(bottom_image_path)
# 获取底层图片的尺寸
height, width, _ = bottom_image.shape
# 指定顶层图片文件夹和输出文件夹
top_images_folder = './'
output_folder = './output'
# 添加其他支持的格式如 '.jpeg', '.bmp' 等
supported_formats = ['.png', '.jpg', '.jpeg', '.bmp']
# 生成输出文件夹路径
output_folder_base = os.path.join(initial_working_directory, 'output')
output_folder = output_folder_base
folder_number = 1
while os.path.exists(output_folder):
folder_number += 1
output_folder = f'{output_folder_base}_{folder_number}'
# 创建输出文件夹
os.makedirs(output_folder, exist_ok=True)
# 循环处理每个顶层图片
for filename in os.listdir(top_images_folder):
if any(filename.lower().endswith(ext) for ext in supported_formats):
# 构建顶层图片的完整路径
top_image_path = os.path.abspath(os.path.join(top_images_folder, filename))
# 加载顶层图片
top_image = cv2.imread(top_image_path)
# 调整顶层图片的大小以匹配底层图片的尺寸
top_image_resized = cv2.resize(top_image, (width, height))
# 使用用户输入的权重值叠加顶层图片到底层图片上
combined_image = cv2.addWeighted(bottom_image, ALPHA_WEIGHT, top_image_resized, BETA_WEIGHT, GAMMA_WEIGHT)
# 构建输出文件路径
output_path = os.path.join(output_folder, filename)
# 保存合成后的图像
cv2.imwrite(output_path, combined_image)
print("处理完成!")
input("Press Enter to exit...")
image代码.7z
(529.21 KB, 下载次数: 15)
2024-1-3 16:28 上传
点击文件名下载附件
图片批量合成py代码
下载积分: 吾爱币 -1 CB
exe版本链接:https://wwow.lanzouq.com/inKIO1juua8j
密码:4sum