Python PIL库调整特征图大小:批量处理语谱图、MFCC和频谱图
使用 Python PIL 库调整特征图大小:批量处理语谱图、MFCC 和频谱图
本文将介绍如何使用 Python 的 PIL 库批量调整三个文件夹 ('D:\论文代码\spectrograms', 'D:\论文代码\语谱图', 'D:\论文代码\MFCC') 中的特征图大小,使其保持一致。假设每个文件夹包含多个子目录,每个子目录包含多个特征图文件。
具体步骤
- 导入必要的库
from PIL import Image
import os
- 定义函数
resize_images,用于调整图片大小
def resize_images(input_dir, output_dir, size):
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for root, dirs, files in os.walk(input_dir):
for file in files:
if file.endswith('.png') or file.endswith('.jpg'):
input_path = os.path.join(root, file)
output_path = os.path.join(output_dir, file)
with Image.open(input_path) as img:
img = img.resize(size, resample=Image.BICUBIC)
img.save(output_path)
该函数接受三个参数:
input_dir:输入文件夹路径output_dir:输出文件夹路径size:目标大小 (宽度, 高度)
函数首先检查输出文件夹是否存在,如果不存在则创建。然后,使用 os.walk 遍历输入文件夹中的所有文件。对于每个文件,判断是否为 .png 或 .jpg 格式,如果是则使用 PIL 库打开图片,调用 resize 函数调整大小,并保存到输出文件夹中。
- 调用函数
resize_images,分别对三个文件夹中的特征图进行调整大小
input_dirs = ['D:\论文代码\spectrograms', 'D:\论文代码\语谱图', 'D:\论文代码\MFCC']
output_dirs = ['D:\论文代码\spectrograms_resized', 'D:\论文代码\语谱图_resized', 'D:\论文代码\MFCC_resized']
size = (500, 500)
for i in range(len(input_dirs)):
resize_images(input_dirs[i], output_dirs[i], size)
该代码段首先定义了输入文件夹路径列表 input_dirs、输出文件夹路径列表 output_dirs 和目标大小 size。然后,遍历这三个列表,分别调用函数 resize_images 进行调整大小操作。调整后的图片存储在输出文件夹中。
总结
通过以上代码,您可以轻松地使用 Python PIL 库批量调整多个文件夹中的特征图大小,使其保持一致。您可以根据实际情况修改输入文件夹路径、输出文件夹路径和目标大小等参数。
原文地址: http://www.cveoy.top/t/topic/nJaN 著作权归作者所有。请勿转载和采集!