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

 更新时间:2023年12月15日 14:00:07   作者:静观云起  
在进行深度学习处理时,有些的代码处理的数据格式为npy,但是常常有的数据格式为png,因此本文就来介绍一下Python如何实现图像批量png格式转为npy格式,需要的可以参考下

前言

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

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)

方法补充

除了上文的方法,还可以使用Python的Pilow库来读取和处理图片,然后使用numpy库将图像数据转换为.npy格式。以下是一个示例代码:

from PIL import Image
import numpy as np

#读取PNG图像
img = Image.open('image.png')

# 转换为RGB格式
img = img.convert('RGB')

# 转换numpy数组
img_arr = np.array(img)

# 保存为.npy格式
np.save('image.npy', img_arr)

在这个示例中,首先使用Pillow库打开PNG图像,并将其转换为RGB格式。然后,使用numpy库将图像数据转换为numpy数组并保存为.npy格式。你可以将image.png替换为你要转换的PNG图像文件名,将image.npy替换为你想要保存为的.npy文件名。

相关问题

vip会员内容

到此这篇关于Python实现批量将图像png格式转为npy格式的文章就介绍到这了,更多相关Python图像png转npy内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python 实现多线程下载视频的代码

    python 实现多线程下载视频的代码

    这篇文章主要介绍了python 实现多线程下载视频的代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Python实现用户名和密码登录

    Python实现用户名和密码登录

    这篇文章主要为大家详细介绍了Python实现用户名和密码登录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Python中的生成器和yield详细介绍

    Python中的生成器和yield详细介绍

    这篇文章主要介绍了Python中的生成器和yield详细介绍,本文讲解了列表推导与生成器表达式、斐波那契数列、生成器Generator、协程与yield表达式、使用生成器与协程等内容,需要的朋友可以参考下
    2015-01-01
  • 关于numpy强制类型转换的问题

    关于numpy强制类型转换的问题

    这篇文章主要介绍了关于numpy强制类型转换的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • python中关于日期时间处理的问答集锦

    python中关于日期时间处理的问答集锦

    python中有关日期时间处理的问答集锦,有需要的朋友不妨参考下
    2013-03-03
  • Python使用gensim计算文档相似性

    Python使用gensim计算文档相似性

    在文本处理中,比如商品评论挖掘,有时需要了解每个评论分别和商品的描述之间的相似度,以此衡量评论的客观性。那么python 里面有计算文本相似度的程序包吗,恭喜你,不仅有,而且很好很强大。下面我们就来体验下gensim的强大
    2016-04-04
  • pycharm如何设置官方中文(如何汉化)

    pycharm如何设置官方中文(如何汉化)

    这篇文章主要介绍了pycharm如何设置官方中文(如何汉化),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 对Python w和w+权限的区别详解

    对Python w和w+权限的区别详解

    今天小编就为大家分享一篇对Python w和w+权限的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python实现翻译word表格小程序

    python实现翻译word表格小程序

    这篇文章主要为大家详细介绍了python翻译word表格小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • python飞机大战pygame游戏框架搭建操作详解

    python飞机大战pygame游戏框架搭建操作详解

    这篇文章主要介绍了python飞机大战pygame游戏框架搭建操作,设计pygame模块游戏创建、初始化、精灵组设置等相关操作技巧,需要的朋友可以参考下
    2019-12-12

最新评论