批量按照原图片名排序修改图片格式为00000001.png(附代码)

news2024/9/23 3:24:16

在这里插入图片描述

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇:
📝《图像去噪》
📝《超分辨率重建》
📝《语义分割》
📝《风格迁移》
📝《目标检测》
📝《暗光增强》
📝《模型优化》
📝《模型实战部署》


在这里插入图片描述

目录

  • 一、脚本说明
  • 二、代码
    • 2.1 参数修改
    • 2.2 代码
  • 三、修改效果
  • 四、总结

一、脚本说明

此脚本主要是用于使用超分时,多数官方开源数据集视频帧命名格式为00000000.png,00000001.png,00000002.png…,如REDS数据集见下:

在这里插入图片描述
多数开源代码如果使用此数据集,图像预处理处分代码是针对此命名格式设计的,如果使用自己数据集,要么修改图片名和官网一致,要么修改源码预处理部分代码。

假设我自己的视频帧图片名格式为:frame_996.bmp,frame_997.bmp,frame_998.bmp…

在这里插入图片描述

现在我想把我自己的训练样本图片名称批量按照原顺序修改为格式00000001.png格式,具体代码见下二。

二、代码

2.1 参数修改

使用代码需要修改的地方见下,其中使用正则表达式提取图片名中数字部分,学者在使用时根据自己的图片名格式对应修改,使其能仅提取图片名中数字,用于保持原图片名顺序。

在这里插入图片描述

2.2 代码

完整的批量按顺序修改图片名代码见下:

import os
import shutil
import re

class BatchRename():
    '''
    批量重命名文件夹中的图片文件

    '''
    def __init__(self):
        self.path = 'TestImages/INF/INF_resize_frame_480360/X4/002'  #表示需要命名处理的文件夹
        self.save_path='TestImages/INF/INF_resize_frame_480360/X4_name/002'#保存重命名后的图片地址
    def rename(self):
        filelist = os.listdir(self.path) #获取文件路径
        # filelist.sort(key=lambda x: int(x.split('.')[0])) # 先按照名称顺序排好序
        filelist.sort(key=lambda x: int(re.search(r'_(\d+)\.bmp$', x).group(1)))
        total_num = len(filelist) #获取文件长度(个数)
        i = 0 #表示文件的命名是从1开始的
        for item in filelist:
            print(item)
            if item.endswith(('.png','.jpg','.jpeg','.bmp')):  #初始的图片的格式为jpg格式的(或者源文件是png格式及其他格式,后面的转换格式就可以调整为自己需要的格式即可)
                src = os.path.join(os.path.abspath(self.path), item)#当前文件中图片的地址
                # dst = os.path.join(os.path.abspath(self.save_path), ''+'week'+str(i) + '.jpg')#处理后文件的地址和名称,可以自己按照自己的要求改进
                dst = os.path.join(os.path.abspath(self.save_path), f'{str(i).zfill(8)}.png')    # 使用了 str(i).zfill(8) 来确保数字部分总是有 8 位,不足的部分用前导零填充。
                image_name = f'{str(i).zfill(8)}.png'
                print(image_name)
                try:
                    # os.rename(src, dst)
                    shutil.copy(src, dst)
                    print ('converting %s to %s ...' % (src, dst))
                    i = i + 1
                except:
                    continue
        print ('total %d to rename & converted %d jpgs' % (total_num, i))

if __name__ == '__main__':
    demo = BatchRename()
    demo.rename()

三、修改效果

重命名后的效果见下对比图:

在这里插入图片描述

四、总结

以上就是批量按照原图片名排序修改图片格式为00000001.png的详细过程,学者参考我提供的方法,结合自己的样本格式灵活修改代码使用。

感谢您阅读到最后!😊总结不易,多多支持呀🌹 点赞👍收藏⭐评论✍️,您的三连是我持续更新的动力💖

关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1982319.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ARMxy工控机使用Node-Red教程:安装工具和依赖(2)

2.3 工具安装 Node-Red 安装过程需要用到网络。请通过网线将设备千兆网口 ETH1 连接至互联网,确保可正常访问互联网。 Node-Red 是一个基于Node的可视化编程工具,因此需要先安装Node。为了便于测试,我司提供的 node-v16.14.0-linux-arm64.t…

原神升级计划数据表:4个倒计时可以修改提示信息和时间,可以点击等级、命座、天赋、备注进行修改。

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><title>原神倒计时</title><style>* {margin: 0;padding: 0;box-sizing: border-box;body {background: #0b1b2c;}}header {width: 100vw;heigh…

「队列」实现FIFO队列(先进先出队列|queue)的功能 / 手撕数据结构(C++)

概述 队列&#xff0c;是一种基本的数据结构&#xff0c;也是一种数据适配器。它在底层上以链表方法实现。 队列的显著特点是他的添加元素与删除元素操作&#xff1a;先加入的元素总是被先弹出。 一个队列应该应该是这样的&#xff1a; --------------QUEUE-------------——…

大数据资源平台建设可行性研究方案(58页PPT)

方案介绍: 在当今信息化高速发展的时代&#xff0c;大数据已成为推动各行各业创新与转型的关键力量。为了充分利用大数据的潜在价值&#xff0c;构建一个高效、安全、可扩展的大数据资源平台显得尤为重要。通过本方案的实施企业可以显著提升数据处理能力、优化资源配置、促进业…

SQL注入实例(sqli-labs/less-8)

0、初始页面 1、确定闭合字符 ?id1 and 11 ?id1 and 12 ?id1 ?id1 and 11 -- ?id1 and 12 -- 确定闭合字符为单引号&#xff0c;并且正确页面与错误页面的显示不同 2、爆库名 使用python脚本 def inject_database1(url):name for i in range(1, 20):low 32high 1…

【大模型从入门到精通5】openAI API高级内容审核-1

这里写目录标题 高级内容审核利用 OpenAI 内容审核 API 的高级内容审核技术整合与实施使用自定义规则增强审核综合示例防止提示注入的策略使用分隔符隔离命令理解分隔符使用分隔符实现命令隔离 高级内容审核 利用 OpenAI 内容审核 API 的高级内容审核技术 OpenAI 内容审核 AP…

SQL注入漏洞复现1

一、靶场信息 sqli-labs下载&#xff1a;https://github.com/Audi-1/sqli-labs phpstudy下载地址&#xff1a;http://down.php.cn/PhpStudy20180211.zip 我是在本地安装小皮搭建环境&#xff0c;相比于在服务器上搭建环境&#xff0c;更加简单 二、注入实操 Less-1 爆库名…

搭建高可用OpenStack(Queen版)集群(三)之部署认证管理服务(Keystone)控制节点集群

一、搭建高可用OpenStack&#xff08;Queen版&#xff09;集群之部署认证服务&#xff08;Keystone&#xff09;控制节点集群 一、Identity 服务简介 1、Identity概述 Identity为认证管理&#xff0c;授权管理和服务目录服务管理提供单点整合。其它Openstack服务将身份认证服务…

常用的图像增强操作

我们将介绍如何用PIL库实现一些简单的图像增强方法。 [!NOTE] 初始化配置 import numpy as np from PIL import Image, ImageOps, ImageEnhance import warningswarnings.filterwarnings(ignore) IMAGE_SIZE 640[!important] 辅助函数 主要用于控制增强幅度 def int_param…

centos7.9升级rocky

ELevate Quickstart Guide | AlmaLinux Wiki 将 CentOS 7 升级到 AlmaLinux 9 由于 Leapp 工具设计为执行一步升级&#xff0c;为了将您的 CentOS 7 机器升级到 AlmaLinux 9&#xff0c;您需要拆分升级过程&#xff1a; CentOS 7 到 AlmaLinux 8AlmaLinux 8 到 AlmaLinux 9 …

Chainlit快速实现AI对话应用1 分钟内实现聊天数据的持久化保存

概述 默认情况下&#xff0c;Chainlit 应用不会保留其生成的聊天和元素。即网页一刷新&#xff0c;所有的聊天记录&#xff0c;页面上的所有聊天记录都会消失。但是&#xff0c;存储和利用这些数据的能力可能是您的项目或组织的重要组成部分。 一旦启用&#xff0c;数据持久性…

3d模型贴图后有部分阴影怎么解决?---模大狮模型网

在展览3D模型设计行业中&#xff0c;贴图是使展品栩栩如生的关键步骤之一。然而&#xff0c;有时在贴图后可能会出现一些意外的阴影&#xff0c;影响了展品的逼真度和视觉效果。本文将探讨在3D模型贴图后出现部分阴影的原因及解决方法&#xff0c;帮助设计师有效应对这一常见问…

Transwarp Data Studio 4.0 :适应AI新时代实现三大能力提升

企业数据资产管理能力建设需要经历资源化、资产化和资本化三个阶段&#xff0c;对应数据底座建设、资产管理平台建设、流通运营平台建设三大任务。星环科技大数据开发工具 Transwarp Data Studio&#xff0c;在此过程中发挥着承上启下的关键作用。近日&#xff0c;星环科技重磅…

ESP8266 烧录----待坑

虚焊&#xff0c;连接不稳定&#xff08;*******&#xff09;&#xff1b;暂时只有通过测试接口电压进行判断&#xff0c;无其它方法 问题总结 1. 输入电压为3.3V USB转TTL RX TX 必须不能高3.3否则无输出(USB转TTL有多种类型&#xff0c;测RX TX电源&#xff1b;天问的是5V的…

sqli-labs闯关1-4

第一关&#xff1a; 这里的输入了 &#xff1f;id1 意思是以GET方式传入id1的参数 就等于SELECT * FROM users WHERE id1 LIMIT 0,1 注意&#xff1a;-- 与-- 空格的区别 在url中输入了--以后&#xff0c;后端数据会变成--空格。在 url中输入 -- 空格 变成 -- 在mysql中&…

fieldIndex on a Row without schema is undefined

Bug信息 Caused by: java.lang.UnsupportedOperationException: fieldIndex on a Row without schema is undefined.at org.apache.spark.sql.Row$class.fieldIndex(Row.scala:342)at org.apache.spark.sql.catalyst.expressions.GenericRow.fieldIndex(rows.scala:166)at org…

Java - 2.1 Java基础

2.1 Java基础 &#xff08;1&#xff09;JVM & JRE & JDK JVM &#xff08;Java Virtual Machine&#xff09;是 Java 虚拟机&#xff0c;它的作用是运行 Java 字节码文件&#xff0c;它有针对不同系统的不同实现&#xff0c;以此达成一次编译&#xff0c;随处运行的…

【限免】通信信号与干扰信号【附MATLAB代码】

微信公众号&#xff1a;EW Frontier 关注可了解更多的雷达、通信、人工智能相关代码。问题或建议&#xff0c;请公众号留言; 个人博客&#xff1a;106.54.201.174 QQ交流群&#xff1a;949444104 摘要 本项目主要模拟仿真常见通信信号及干扰信号&#xff0c;高斯白噪声、噪声调…

ARMxy工控机使用Node-Red教程:实现Modbus转MQTT协议二次开发(8)

Modbus/TCP与MQTT通信案例 7.1 案例说明 案例功能&#xff1a;使用node-red工具通过Modbus/RTU协议采集M160T IO模块数据&#xff0c;再经过MQTT协议的转换上传到上位机Ubuntu。基于 node-red 部署程序&#xff0c;实现获取 M160T IO 模块数据上传到上位机。 图 98 7.2 案例…