复制即用-python-读取文件夹中图片并按照最短边裁剪为正方形

读取文件夹中图片并按照最短边裁剪为正方形

声明

没有技术难度的读取图片并剪裁,偷懒就复制粘贴跑它!

代码

import os
from random import randint
import cv2

def cut_resize_file(source_path, output_path, file_type, cut_size):
    """
    先根据最短边进行裁剪,为正方形,在重设大小,默认256
    :param source_path:
    :param output_path:
    :param file_type:
    :param cut_size:
    :return:
    """
    path_files = os.listdir(source_path)
    for item_name in path_files:
        if item_name.endswith(file_type):  # 扩展名是图片
            # 调用cv2.imread读入图片,读入格式为IMREAD_COLOR
            full_name = source_path + "/" + item_name
            print('process +> ', full_name)
            img_mat = cv2.imread(full_name, cv2.IMREAD_COLOR)
            # 根据最短边进行图像裁剪
            sp = img_mat.shape
            rows = sp[0]  # height(rows) of image
            cols = sp[1]  # width(colums) of image
            if rows >= cols:
                shorter = cols
            else:
                shorter = rows
            cropped = img_mat[0:shorter, 0:shorter]  # 裁剪坐标为[y0:y1, x0:x1]
            new_array = cv2.resize(cropped, cut_size)
            random_name = str(randint(0, 99999)) + '.jpg'  # 随机生成一个数字作为名字
            cv2.imwrite(output_path + '/' + random_name, new_array)


if __name__ == '__main__':
    # 本方法用于将原图依照最短边进行重设大小,并裁剪
    print('执行开始')
    source_path = 'F:/COCO_models/COCO2017/temp/'  # 原图路径
    output_path = './men2autom512/trainA'  # 保存路径
    file_type = '.jpg'  # 文件扩展名
    cut_size = (512, 512)  # 裁剪大小
    cut_resize_file(source_path, output_path, file_type, cut_size)
    print('执行结束')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值