本文主要是介绍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格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!