【Python】如何在文件夹里批量分割图片?

在这里插入图片描述

1.Introduction

又是一年四季在轮回,而我终于入门了深度学习!

话说上周终于在Paddle框架下跑通了目标检测,激动了好几天,哈哈哈,深度学习的门槛是真的高(我是真的菜),由于拍的照片有点大,所以就需要对图片进行切割,切成2×2,3×3之类的。开始是是想用Matlab的,毕竟现在最熟悉的就是Matlab了,不过转念一想,都深度学习了,还是用Python吧~

2.Materials and methods

本文所实现的目的是对一个文件内的所有照片,进行批量切割,其中切割的个数可以自己选择,比如横着切2块,竖着切3块。

话不多说,上代码

# -*- coding: utf-8 -*-
"""
Created on Sun Dec 13 21:49:55 2020

@author: YaoYee
"""

import cv2
import os

# Cutting the input image to h*w blocks
heightCutNum = 2;
widthCutNum = 2;


# The folder path of input and output
inPath = "C:/Users/YaoYee/Desktop/original/"
outPath = "C:/Users/YaoYee/Desktop/cutting/"


for f in os.listdir(inPath):

    path = inPath + f.strip()
    print(path)
    img = cv2.imread(path)    

    # The size of each input image
    height = img.shape[0]
    width = img.shape[1]
    
    # The size of block that you want to cut
    heightBlock = int(height / heightCutNum)
    widthBlock = int(width / widthCutNum)

    for i in range(0,heightCutNum):
        for j in range(0,widthCutNum):
            cutImage = img[i*heightBlock:(i+1)*heightBlock, j*widthBlock:(j+1)*widthBlock]
            savePath = outPath + f.strip()[0:5] + "_" + str(i) + str(j) + ".jpg"
            cv2.imwrite(savePath,cutImage)
        

emmm,注释啥的都写了,也没啥说的了吧

3. Results and discussion

运行下看看效果,这里我们把巴基和路飞大卸四块~
在这里插入图片描述
:输出文件夹路径自己先构建好,也就是告诉代码把结果存到哪

4. Conclusion

I have nothing to loss

猜你喜欢:👇🏻
【Python】如何在文件夹里批量替换文本中的内容?
【Python】如何在文件夹里批量修改文件名(001-100)?
【Python】随机划分数据集并生成VOC格式列表

在这里插入图片描述

  • 16
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
### 回答1: 你可以使用Python中的os和os.path模块来批量修改文件夹下的文件名。具体步骤如下: 1. 使用os.listdir()函数获取文件夹下的所有文件名。 2. 遍历文件名列表,使用os.path.join()函数将文件名和文件夹路径拼接成完整的文件路径。 3. 使用os.rename()函数将文件名修改为新的文件名。 下面是一个示例代码: import os folder_path = '/path/to/folder' new_name_prefix = 'new_name_' for filename in os.listdir(folder_path): old_path = os.path.join(folder_path, filename) if os.path.isfile(old_path): new_name = new_name_prefix + filename new_path = os.path.join(folder_path, new_name) os.rename(old_path, new_path) 注意:在运行代码之前,请先备份文件夹中的文件,以免意外修改导致数据丢失。 ### 回答2: 在Python中,我们可以使用os模块来批量修改文件夹下的文件名。下面是一个实现的示例代码: ```python import os def batch_rename_files(folder_path, new_name): # 获取指定文件夹下的所有文件名 files = os.listdir(folder_path) for file in files: # 构建文件的完整路径 file_path = os.path.join(folder_path, file) # 判断是否为文件 if os.path.isfile(file_path): # 分割文件名和扩展名 file_name, file_ext = os.path.splitext(file) # 构建新的文件名 new_file_name = new_name + file_ext # 构建新的文件完整路径 new_file_path = os.path.join(folder_path, new_file_name) # 重命名文件 os.rename(file_path, new_file_path) # 调用示例 folder_path = "文件夹路径" new_name = "新文件名" batch_rename_files(folder_path, new_name) ``` 上述代码中,`batch_rename_files`函数接受文件夹路径和新文件名作为参数。它首先获取文件夹下的所有文件名,然后遍历每个文件名。 在遍历过程中,首先判断文件名是否是一个文件,然后使用`os.path.splitext`函数将文件名分割为文件名和扩展名。接下来,通过在新文件名前添加指定的新文件名和保留原来的扩展名,构建新的文件名。 最后,使用`os.rename`函数将原文件重命名为新的文件名。 要使用代码,您需要将`folder_path`变量设置为您要修改文件名的文件夹的路径,并将`new_name`变量设置为您想要添加的新文件名。请注意,这文件夹路径应为绝对路径。 以上是一个简单的示例,您可以根据具体需求进行修改和扩展。 ### 回答3: 使用Python可以方便地批量修改文件夹下的文件名。下面是一个简单的示例代码来演示如何实现这个功能: ``` import os # 获取文件夹路径 folder_path = '文件夹路径' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构建旧文件路径和新文件路径 old_filepath = os.path.join(folder_path, filename) new_filepath = os.path.join(folder_path, '新文件名') # 修改文件名 os.rename(old_filepath, new_filepath) ``` 上述代码中,我们首先需要将`文件夹路径`替换成要操作的文件夹的实际路径。然后,通过`os.listdir()`函数获取文件夹下的所有文件名,并使用`os.path.join()`函数构建旧文件路径和新文件路径。最后,使用`os.rename()`函数将旧文件名修改为新文件名。 需要注意的是,在执行文件名修改时,确保新文件名是独一无二的,防止文件名冲突。另外,如果文件夹中还包含子文件夹,可能需要使用递归函数来遍历并修改子文件夹中的文件名。 总结起来,使用Python可以轻松实现文件夹下文件名的批量修改。通过遍历文件夹中的文件,构建旧文件路径和新文件路径,再使用`os.rename()`函数实现文件名的修改。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值