python 脚本来实现查找文件夹中跟指定图片的空白区域一样形状或比例的所有其他图片最后把查找到的图片连同目标图片一起复制到一个指定的temp文件夹中
这个问题可以分为两个部分,首先需要找到空白区域相同的其他图片,然后将它们复制到指定的temp文件夹中。
第一部分可以使用图像处理库来实现。我们可以使用Pillow库来打开图片并获取其空白区域。对于每张图片,我们可以使用Pillow的ImageOps库中的expand函数来获取其空白区域。然后,我们可以比较目标图片的空白区域和其他图片的空白区域,如果它们相同,就将该图片的路径加入到一个列表中。
第二部分可以使用Python的os库来实现。我们可以使用os.walk函数来遍历文件夹中的所有文件和子文件夹。对于每个文件,我们检查其是否在列表中,如果在,就将其复制到指定的temp文件夹中。
下面是一个简单的Python脚本来实现这个功能:
import os
from PIL import Image, ImageOps
import shutil
# 目标图片路径
target_image_path = "path/to/target/image.jpg"
# 遍历的文件夹路径
folder_path = "path/to/folder"
# 目标空白区域
target_blank_region = ImageOps.expand(
Image.open(target_image_path).convert("RGBA"),
border=1,
fill=(255, 255, 255, 0)
).getbbox()
# 查找相同空白区域的图片
matching_images = []
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith(".jpg") or file.endswith(".png"):
image_path = os.path.join(root, file)
if image_path != target_image_path:
image_blank_region = ImageOps.expand(
Image.open(image_path).convert("RGBA"),
border=1,
fill=(255, 255, 255, 0)
).getbbox()
if image_blank_region == target_blank_region:
matching_images.append(image_path)
# 将匹配的图片复制到指定的temp文件夹中
temp_folder_path = "path/to/temp/folder"
if not os.path.exists(temp_folder_path):
os.makedirs(temp_folder_path)
for image_path in matching_images:
shutil.copy(image_path, temp_folder_path)
shutil.copy(target_image_path, temp_folder_path)
这个脚本首先定义了目标图片的路径和要遍历的文件夹路径。然后使用Pillow库打开目标图片并获取其空白区域。接下来,使用os.walk函数遍历文件夹,对于每个文件,使用Pillow库获取其空白区域,然后将其与目标图片的空白区域进行比较。如果它们相同,就将该图片的路径加入到matching_images列表中。最后,使用shutil库将匹配的图片和目标图片复制到指定的temp文件夹中
原文地址: https://www.cveoy.top/t/topic/fe0G 著作权归作者所有。请勿转载和采集!