栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Python逐一读取,修改,保存文件夹中的图像文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python逐一读取,修改,保存文件夹中的图像文件

import argparse
import os
from PIL import Image   # PIL是Python强大的图像处理库。


def extract_images(images_path, out_path, num_images):

    print('extracting images from {} to {}'.format(images_path, out_path))

    # os.listdir(path)返回指定路径下所有的文件和文件夹的名字,并存放在一个列表中。
    images_files = os.listdir(images_path)
    print(images_files, num_images)

    images_files = images_files[:num_images]   # 只读取规定数量的图像

    for index, image_file in enumerate(images_files):
        imaeg_file_name = image_file.split('.')[0]

        # os.path.join连接两个或更多的路径名组件,如果各组件首字母不包含'/',自动加上
        im_path = os.path.join(images_path, image_file)

        im = Image.open(im_path)   # 使用PIL中的函数读取图像的路径,此时的图像应该是PIL image。
        w, h = im.size

        # 使用PIL模块中的 resize 函数修改图像尺寸大小,这里尺寸要加两个括号。
        im1 = im.resize((640,640))

        # os.path.split(‘pah’)函数可以实现路径分割功能,仅仅以‘path’中最后一个/作为分隔符
        # 分隔开后,将索引为0的视为目录(路径),索引为1的视为文件名。
        name = os.path.split(im_path)
        # 这里,name[0]是目录,name[1]是文件名。

        save_name = os.path.join(out_path)   # 这里是因为只有一个路径,所以save_name和out_path路径相同
        # print(save_name, out_path)
        save_name = os.path.join(save_name, name[1])   # 连接两个路径
        im1.save(save_name)   # 保存图像
        print(save_name)


def parse_args():
    args_parser = argparse.ArgumentParser(description='Extract image from files and resize image')

    args_parser.add_argument('--path_to_images', type=str, help='path for input images',
                             default='D:/A_dataset/test/img')   # 输入路径
    args_parser.add_argument('--output_images_path', type=str, help='output images path',
                             default='D:/A_dataset/test/img1')   # 输出路径
    args_parser.add_argument('--num_images', type=int,
                             default=1000, help='images')

    args = args_parser.parse_args()
    return args


def main():
    args = parse_args()
    if not os.path.isdir(args.output_images_path):
        os.mkdir(args.output_images_path)

    images_path = args.path_to_images   # 文件的输入路径
    # print(images_path)   # print:D:/A_dataset/test/img

    out_path = args.output_images_path
    num_images = args.num_images

    if not os.path.isdir(out_path):   # 判断是否是存在输出文件夹,如果不存在,创建一个新文件夹
        os.mkdir(out_path)

    extract_images(images_path, out_path, num_images)


if __name__ == "__main__":
    main()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/762518.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号