Python 批量提取图片特定区域并保存 - 使用 PIL 库
你可以使用 Python 的 PIL 库(或者 Pillow 库)来实现批量提取图片的某几个块,并将它们存储到指定的文件夹中。以下是一个示例代码:
import os
from PIL import Image
def extract_blocks(input_folder, output_folder, block_coordinates):
# 创建输出文件夹
os.makedirs(output_folder, exist_ok=True)
# 遍历输入文件夹中的所有图片文件
for filename in os.listdir(input_folder):
if filename.endswith('.jpg') or filename.endswith('.png'):
# 打开图片文件
image_path = os.path.join(input_folder, filename)
image = Image.open(image_path)
# 提取每个块并保存
for i, coords in enumerate(block_coordinates):
block = image.crop(coords)
block.save(os.path.join(output_folder, f'{filename}_{i}.jpg'))
# 关闭图片文件
image.close()
# 输入文件夹路径
input_folder = r'C:\Users\jh\Desktop\data\images1'
# 输出文件夹路径
output_folder = r'C:\Users\jh\Desktop\data\images_block'
# 块的坐标列表,每个元素为 (left, upper, right, lower)
block_coordinates = [
(0, 0, 100, 100), # 第一个块的坐标
(100, 100, 200, 200), # 第二个块的坐标
# 可以继续添加更多块的坐标
]
# 调用函数进行批量提取和保存
extract_blocks(input_folder, output_folder, block_coordinates)
在上面的代码中,你需要替换input_folder和output_folder变量的值为你想要使用的实际文件夹路径。block_coordinates变量是一个坐标列表,每个元素表示一个块的左上角和右下角像素坐标。你可以根据需要添加更多的块坐标。
运行上述代码后,它将遍历输入文件夹中的所有图片文件,并提取每个块。每个提取的块将以原始文件名加上块索引作为文件名,并保存在输出文件夹中。
原文地址: https://www.cveoy.top/t/topic/f0d6 著作权归作者所有。请勿转载和采集!