吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1560|回复: 20
收起左侧

[Python 原创] python批量组合图片

  [复制链接]
a2599639 发表于 2024-1-3 14:13
本帖最后由 a2599639 于 2024-1-3 17:04 编辑

来了这么久52,白嫖了这么多好东西,今天也做个小小的共享,这个程序基于pyton的cv2库制作,先检测当前机器是否有安装了所需的库,然后通过修改background.png图片来实现与任意图片组合。使用方法很简单,首先新建一个文件夹,文件路径不要包含中文字符,将要合成的图片和底层图片放进去
自己复制代码或者双击我写好的合成图片.py
企业微信截图_17042614122629.png
下面是效果图,将明日香作为底层图片合成其他图片

background.png
合成后得到:
4.jpg 6.jpg

下面是代码,也可以直接下载我准备好的压缩包

[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, 下载次数: 16)

exe版本链接:https://wwow.lanzouq.com/inKIO1juua8j
密码:4sum


免费评分

参与人数 3吾爱币 +10 热心值 +2 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yanjia5286 + 1 用心讨论,共获提升!
cxkj1225 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| a2599639 发表于 2024-1-3 16:28
更新了一波代码,exe版本也发了
 楼主| a2599639 发表于 2024-1-3 14:15
42328669425 发表于 2024-1-3 14:45
 楼主| a2599639 发表于 2024-1-3 14:53
42328669425 发表于 2024-1-3 14:45
感谢分享 可以做成exe文件吗

可以的,稍后放一个
dw6666 发表于 2024-1-3 15:07
感谢大佬的奉献
头像被屏蔽
277249 发表于 2024-1-3 15:56
提示: 作者被禁止或删除 内容自动屏蔽
FruitBaby 发表于 2024-1-3 15:57
怎么做成exe格式,求解
liehuo2012 发表于 2024-1-3 16:14
感谢大佬分享
 楼主| a2599639 发表于 2024-1-3 16:21
FruitBaby 发表于 2024-1-3 15:57
怎么做成exe格式,求解

挺麻烦的,我也刚搞
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表