UAV/tools/convert_jpg.py

42 lines
1.2 KiB
Python
Raw Normal View History

from PIL import Image
import os
2025-01-14 21:23:19 +08:00
import shutil
from multiprocessing import Pool
from functools import partial
2025-01-14 21:23:19 +08:00
def convert_image(file_name, img_dir, output_dir, convert_format):
input_path = os.path.join(img_dir, file_name)
output_path = os.path.join(output_dir, file_name.replace(".jpg", f".{convert_format}"))
# 打开并转换图像
img = Image.open(input_path)
img.save(output_path)
2025-01-14 21:23:19 +08:00
def main():
2025-01-15 15:19:40 +08:00
convert_format = "jpg"
2025-01-14 21:23:19 +08:00
img_dir = r"E:\datasets\UAV\134\project\images"
2025-01-15 15:19:40 +08:00
output_dir = r"E:\datasets\UAV\134_jpg\project\images"
2025-01-14 21:23:19 +08:00
# 如果输出目录存在,先删除
if os.path.exists(output_dir):
shutil.rmtree(output_dir)
# 创建输出目录
os.makedirs(output_dir)
# 获取所有文件名
file_names = os.listdir(img_dir)
# 创建部分函数,固定除文件名外的其他参数
convert_partial = partial(convert_image,
img_dir=img_dir,
output_dir=output_dir,
convert_format=convert_format)
# 使用进程池并行处理
with Pool() as pool:
pool.map(convert_partial, file_names)
if __name__ == '__main__':
main()