赞
踩
做图像处理需要大批量的修改图片尺寸来做训练样本,为此本程序借助opencv来实现大批量的剪切(填充)图片。
- # coding: utf-8
-
- import os
- from cv2 import (
- imread, imwrite, resize, INTER_AREA
- )
- from typing import AnyStr, List, Tuple
-
-
- def find_images(dir_path: AnyStr) -> List:
- images_path = []
- images_path_append = images_path.append
- for parent, dirs, files in os.walk(dir_path):
- for file in files:
- if file.endswith(('.png', '.jpg', '.jpeg')):
- images_path_append(os.path.join(parent, file))
- return images_path
-
-
- def resize_images(in_dir_path: AnyStr, out_dir_path: AnyStr, dimensions: Tuple[int, int]) -> None:
- """
- :param in_dir_path: 所需剪切图像目录
- :param out_dir_path: 剪切后图像保存目录
- :param dimensions: 所需剪切图像大小(100, 100)
- """
- images_path = find_images(in_dir_path)
- for image_path in images_path:
- image_name = os.path.basename(image_path)
- origin_image = imread(image_path)
- resize_image = resize(origin_image, dimensions, interpolation=INTER_AREA)
- out_image_path = os.path.join(out_dir_path, image_name)
- imwrite(out_image_path, resize_image)
-
- if __name__ == '__main__':
- resize_images(origin_ds_path, resize_ds_path, dimensions)
有一些值需要自己更改,比如保存路径和保存名称。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。