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

前言

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

1 png2npy

python 复制代码
# -- 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",谢谢。

相关推荐
C^h几秒前
pytorch 适合初学者 0基础学习
人工智能·pytorch·python
隔窗听雨眠5 分钟前
记一次SQL Server数据库性能分析:从CPU100%到单配置修复的完整诊断
开发语言·数据库·php
David猪大卫9 分钟前
【C++修炼】智能指针使用及原理
开发语言·c++·经验分享·笔记·学习·考研·面试
charlie11451419110 分钟前
现代Qt开发之图像处理进阶:像素操作与格式转换
开发语言·图像处理·qt
李永奉18 分钟前
中科蓝讯SDK开发-BT893x 面条耳机连接vivo手机后连接APP端,最后手机端设置页面手动断开蓝牙连接,此时耳机端假断开
c语言·开发语言·嵌入式硬件·物联网·智能手机·电脑
小柯南敲键盘22 分钟前
跨马翻译:AI批量图片翻译工具,跨境电商视频字幕翻译与智能抠图一体搞定
人工智能·python·音视频
2601_9622972533 分钟前
Python里behave和pytest-bdd哪个更适合中大型项目?为什么?
python·bdd·行为驱动开发·behave·pytest-bdd
秦老师Q1 小时前
php零基础入门到实战,从语法到框架,一篇搞定
开发语言·php
驭渊的小故事2 小时前
多线程02
java·开发语言·jvm
阿里嘎多学长2 小时前
2026-09-09 GitHub 热点项目精选
开发语言·程序员·github·代码托管