【Python编程】将格式为ppm和pgm的图片批量转换为png或jpg格式的图片

news2024/12/29 8:43:39

前序

如果文件夹中有异常图片,则可以使用以下代码从而跳过这些异常图片而不影响转换代码的运行。例如本人在解压时中断而导致的图片异常问题,图片示例如下:
在这里插入图片描述

from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True

正文

导入用到的库

from PIL import Image
import os

定义格式转换函数

def batch_convert_images(input_dir, output_dir):
    for filename in os.listdir(input_dir):
        if filename.endswith('.ppm') or filename.endswith('.pgm'):
            img_path = os.path.join(input_dir, filename)
            img = Image.open(img_path)
            new_filename = os.path.splitext(filename)[0] + '.png'
            save_path = os.path.join(output_dir, new_filename)
            img.save(save_path)

定义读入图片的路径变量和格式转换后图片保存路径的变量

input_dir = 'E:/系统默认/桌面/rgbd_people_unihall/rgb'  # 输入图片所在目录
output_dir = 'E:/系统默认/桌面/rgbd_people_unihall/rgb1'  # 输出图片所在目录

格式转换代码运行

batch_convert_images(input_dir, output_dir)

完整代码

from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True   # 这两句代码可写可不写,如果自己要转换的文件夹中的图片没有异常,可不写

from PIL import Image
import os

def batch_convert_images(input_dir, output_dir):
    for filename in os.listdir(input_dir):
        if filename.endswith('.ppm') or filename.endswith('.pgm'):
            img_path = os.path.join(input_dir, filename)
            img = Image.open(img_path)
            new_filename = os.path.splitext(filename)[0] + '.png'
            save_path = os.path.join(output_dir, new_filename)
            img.save(save_path)

# 使用示例
input_dir = 'E:/系统默认/桌面/rgbd_people_unihall/rgb'  # 输入图片所在目录
output_dir = 'E:/系统默认/桌面/rgbd_people_unihall/rgb1'  # 输出图片所在目录
batch_convert_images(input_dir, output_dir)

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

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

相关文章

Golang学习日志 ━━ gin-vue-admin插件开发记录

gin-vue-admin是一套国人用golang开发的后台管理系统,本文记录插件开发内容。 官网:https://www.gin-vue-admin.com/ 学习视频:https://www.bilibili.com/video/BV1kv4y1g7nT/ 插件目录 后端位置:\server\plugin\ 前端位置&#…

信号与系统复习笔记——采样与通讯系统

信号与系统复习笔记——采样与通讯系统 采样定理 冲激串采样函数可表示为: p ( t ) ∑ n − ∞ ∞ δ ( t − n T ) p(t) \sum_{n-\infty}^{\infty} \delta(t - nT) p(t)n−∞∑∞​δ(t−nT) 周期 T T T 称为采样周期,而 ω s 1 T \omega_s …

7月29-31日·相约上海丨上海国际智能遮阳与建筑节能展览会即将举办

上海国际智能遮阳与建筑节能展览会(ISSE)即将盛大召开。这个七月,期待您的参与,一同共聚盛会! 1、关于展会 国内建筑遮阳市场尚在快速发展期,随着社会经济的发展以及建筑节能环保概念的不断深入&#xff…

开发的功能不都是经过上线测试,为什么上线后还会那么多 Bug ?

你是否也经过这样的灵魂拷问:「开发的功能不都是经过上线测试的吗?为什么上线后还会那么多 Bug ?」。 大家明明都很努力,为什么「输出」的结果没有更进一步?今天我们就水一水这个「狗血」话题,究竟是谁个锅…

一半以上的年轻人存款不足10万元,能带给我们什么思考?

目录 年轻人存款现状现在的年轻人真的没有存款意愿吗?为什么年轻人存款少?收入低,臣妾做不到啊生活成本高消费观念不同超前消费、过度负债存款意识弱 依据自身情况聊聊你的目前的存款在哪一个区间?你觉得存款难吗?谈谈…

Open62541 NodeSet loader 编译与使用

大多数的OPC UA 建模工具通常是将NodeSet 编译成为C 或者C# 的源代码,然后和Server 程序一起编译。比如uaModeler,Opc foundation 的UA ModelCompiler 以及Open62541 提供的nodeset_Compiler 都是如此,这种方式在载入配套规范的Nodeset 无疑是…

使用Jenkins构建发布一个简单的maven项目

上一章,完成了jenkins在ubuntu上的安装,这一章将使用单个Jenkins服务完成一个maven项目的打包和发布。 1、在Jenkins的管理页面中安装相关插件 用到的插件有:Maven Integration、Git、Publish Over SSH三个,在Dashboard -> M…

全国水系与流域(五级)矢量数据下载

1. 全国水系与流域(五级)矢量数据 全国共计3040条水系,4015个流域 全国水系与流域(五级)矢量数据 链接 解压密码:rserforum.com 说明:“流域等级划分包括1-5级,其中1-2级为一级支流…

从零开始理解Linux中断架构(12)--硬中断之中断控制器(GICV3)

前面我们搞清楚了elx_irq的外围部分,了解清楚了kernel_enter/kernel_exit大致的作用。本节我们进入到硬中断处理部分。硬中断处理程序的位置见下图: 硬中断处理主要的工作就是判断中断发起源,应答中断控制器,根据中断源查询出并调用该中断源的设备级处理函数。 前面…

pcl matlab 计算平面与空间三角形的交线

一、生成一个平面 过程: 单有法向量不能确定一个平面,至少还要有平面上的一个点的坐标才行 假如知道法向量n(A,B,C) 而平面过某点M(x0,y0,z0) 那么平面的方程为 A(x-x0)B(y-y0)C(z-z0)0 要在图中画出来,那么先要给x,y一个范围 举个离子&#…

Appuploader:常见错误及解决方法指南

目录 前言 一.登录apple官网,注册账号 二.下载Appuploader和登录 三.bundle ID 四.设备管理 五.证书管理 六.描述文件管理 七.打包 八.安装测试 (PS:第一次安装成功会显示不受信任,进入设置-通 安全性”界面&#xff0c…

Interactive Natural Language Processing

本文是对《Interactive Natural Language Processing》的翻译。 交互式自然语言处理 摘要1 引言2 交互式对象2.1 人在环2.2 KB在环2.3 模型或工具在环2.4 环境在环 3 交互界面3.1 自然语言3.2 形式语言3.3 编辑3.4 机器语言3.5 共享内存 4 交互方法4.1 预训练语言模型4.2 提示…

Broken Gallery 靶场

主机发现 sudo nmap -sn 192.168.28.0/24 sudo nmap -sT --min-rate 10000 -p- 192.168.28.32 -oA nmapscan/ports sudo nmap -sT -sV -sC -O -p22,80 192.168.28.32 -oA nmapscan/detial sudo nmap --scriptvuln 192.168.28.32 -oA nmapsccan/vuln 访问80 图片下载下来 exift…

如何在 ZBrush 和 UE5 中创建精灵吟游诗人(P2)

小伙伴们大家好,下篇咱们精彩继续,主要是讲解角色建模完成后的重新拓扑、UV、灯光设置和渲染。 纹理的重新拓扑和UV 一切都在 Maya 中完成,重新拓扑是一个漫长的过程,因为角色有很多元素,值得庆幸的是,在…

模型训练-3D并行

1. 数据并行(Data Parallel) 1.1常规数据并行 有一张显卡(例如rank 0显卡)专门用于存储模型参数、梯度信息和更新模型参数。将训练数据分成多份(份数等于显卡数量),每张卡上的模型参数相同&…

CSS编写的瓶颈在哪里?CSS预处理器登场解决你的燃眉之急!

文章目录 I. 引言解释CSS预处理器是什么提及CSS预处理器的好处 II. 为什么要使用CSS预处理器减少代码量变量Mixin函数 & 条件语句 提升CSS的可读性和维护性嵌套规则继承 方便维护加入Source Map方便调试自动前缀 III. 简介几个流行的CSS预处理器Sass介绍Sass的特性解释Sass…

69、基于51单片机智能交流电表蓝牙远程抄表OLED屏系统设计(程序+原理图+PCB源文件+参考论文+参考PPT+元器件清单等)

方案选择 单片机的选择 方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元…

404系列之404界面

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>404</title><style>* {border: 0;box-sizing: border-box;margin: 0;padding: 0;}:root {-…

PLC数据采集如何实现远程监控和远程维护上下载?

随着PLC在工业自动化控制领域得到越来越广泛的应用&#xff0c;PLC数据采集是也逐渐成为现代工业自动化的重要组成部分。通过采集PLC内的数据&#xff0c;可以实时监测控制生产过程及工艺参数&#xff0c;提高生产效率和产品质量&#xff0c;能够使企业能够获取关键生产数据&am…