opencv、python批量剪切图片

做图像处理需要大批量的修改图片尺寸来做训练样本,为此本程序借助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)

 

 

 

有一些值需要自己更改,比如保存路径和保存名称。
 

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值