Python实现图像批量png格式转为npy格式

2023-12-15 00:36

本文主要是介绍Python实现图像批量png格式转为npy格式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在进行深度学习处理时,有些的代码处理的数据格式为npy,但是常常有的数据格式为png,因此下面就用Python实现图像批量png格式转为npy格式,代码进行了详细注释。

1 png2npy

# -- coding: UTF-8 --
'''
Author: Clouds rising
Date: December, 2023
QQ: 504156006
'''import os
import glob
import numpy as np
from PIL import Image# 要修改的文件夹路径
input_dir = 'label_png'# 新文件夹的路径
output_dir = 'label_npy'# 创建输出文件夹
if not os.path.exists(output_dir):os.makedirs(output_dir)# 遍历文件夹中的所有png图像
for img_path in glob.glob(os.path.join(input_dir, '*.png')):# 打开原始的png图像img = Image.open(img_path)# 转换图像img_8bit = img.convert('L') #参数L: 8位像素,黑白# 创建一个转换表,将灰度值为255的像素点变为0'''在这一行代码中,创建了一个包含256个元素的列表(0到255的灰度值)。该列表的每个元素都通过条件判断0 if i == 255 else i 进行赋值。这意味着如果灰度值为255,那么赋值为0,否则保持不变。这样就形成了一个转换表,用于将灰度值为255的像素点变为0。'''invert_table = [0 if i == 255 else i for i in range(256)]'''在这一行代码中,通过point方法应用了之前创建的转换表。这个方法会对图像中的每个像素点进行变换,根据转换表将灰度值为255的像素点变为0,而其他灰度值保持不变。最终,得到了经过反转处理的图像img_inverted1。'''img_inverted1 = img_8bit.point(invert_table, 'L')# 将图像对象转换为NumPy数组img_array = np.asarray(img_inverted1)# 生成与输入文件相同的输出文件名output_filename = os.path.join(output_dir, os.path.basename(img_path).replace('.png', ''))# 自动保存为npy文件np.save(output_filename, img_array)

后记

大家如果有问题需要交流或者有项目需要合作,可以加Q Q :504156006详聊,加好友请留言“CSDN”,谢谢。

这篇关于Python实现图像批量png格式转为npy格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/494468

相关文章

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的