美文网首页
Python 多图片重名命

Python 多图片重名命

作者: 平原河流 | 来源:发表于2020-04-29 13:27 被阅读0次

在制作Pascal VOC数据集时,需要对图片重命名。

图片数量比较多,都放在一个文件夹下面,而且在Mac下会有隐藏文件夹,比如.DS_Store
也有可能文件夹包含子文件夹,子文件夹中也包含多个图片。

针对这种情况写了以下一段Python代码。
利用递归调用,实现了多层级目录读取文件,并判断文件是不是图片文件,以便针对图片文件进行重命名。

这段代码严格来说不是重命名,而是复制原图片文件。
利用``opencv2```,把原图片文件写到一个新的目录下,并重新命名。

# -*- coding: utf-8 -*-
import cv2
import os

# count
img_count = 1


# 递归调用方法,读取目录文件
def recyle_read(path, dst_path):
    # 图片重命名计数
    global img_count
    # 判断是不是目录
    if os.path.isdir(path):
        # file list
        file_list = os.listdir(path)
        # 读取子文件,递归调用
        for idx, file in enumerate(file_list):
            print(path)
            print(file)
            sub_path = os.path.join(path, file)
            recyle_read(sub_path, dst_path)
    elif os.path.isfile(path):
        img = cv2.imread(path)
        # 判断是不是图片
        if img is not None:
            img_dst_path = os.path.join(dst_path, "gesture_voc_%06d.jpg" % img_count)
            cv2.imwrite(img_dst_path, img)
            img_count += 1
            print('image count %d' % img_count)
        else:
            print(path + ' is empty')
        pass
    else:
        print(path + ' is not image!')
    pass


def main():
    # object dir
    dst_path = '/Users/ll/Desktop/obj/VOC2020/JPEGImages/'
    # make dst dir
    if os.path.exists(dst_path) is False:
        os.makedirs(dst_path)
        pass
    # org dir
    org_path = '/Users/ll/Desktop/src/'
    # cp
    recyle_read(org_path, dst_path)
    pass


if __name__ == '__main__':
    main()
    pass

主要方法有两个
1、def main():
主要定义图片来源路径,这个路径可以是文件夹、也可以是单个图片文件。
也定义了新的写入路径,这个必须是文件夹。

2、def recyle_read(path, dst_path):
主要定义了递归读取图片文件,并写入新的目录下。

相关文章

  • Python 多图片重名命

    在制作Pascal VOC数据集时,需要对图片重命名。 图片数量比较多,都放在一个文件夹下面,而且在Mac下会有隐...

  • 图片重名研究

    在我们的 iOS 工程中,在同一个目录下是不允许存在两张名字相同的图片的,但是在不同目录下却可以允许这种情况,所以...

  • 设置的 精灵,动画,控件 不见了 或者显示异常问题

    cocos2d-x技术群:117871561缓存的组件重名:查看 缓存到内存里的 纹理或者图片集 有没有 重名的 ...

  • Python 的 namespace(重要)

    记录:Python中通过提供 namespace 来实现重名函数(方法)、变量等,有三种 namespace,分别...

  • 《菜鸟教程》-TypeScript 命名空间

    命名空间一个最明确的目的就是解决重名问题。 TypeScript 命名空间的定义与使用 TypeScript 中命...

  • 《TypeScript》 - 命名空间

    命名空间一个最明确的目的就是解决重名问题。 TypeScript 命名空间的定义与使用 TypeScript 中命...

  • 【图文详解】python爬虫实战——5分钟做个图片自动下载器

    python爬虫实战——图片自动下载器 之前介绍了那么多基本知识【Python爬虫】入门知识(没看的赶紧去看)大家...

  • 重名

  • 重名

    老徐的两个儿子 先后出了国门 都成功地绿了 变为外籍华人 小的还娶了碧眼金发 生了个漂亮孙女 很优秀 是典型的杂交...

  • 重名

    今日出去办储蓄卡,填了资料,银行人员在机器上就开始操作起来,谁知第一步就没通过,机器显示我没有办卡的条件。我一懵啊...

网友评论

      本文标题:Python 多图片重名命

      本文链接:https://www.haomeiwen.com/subject/pmtgwhtx.html