Python實現(xiàn)批量將圖像png格式轉(zhuǎn)為npy格式
前言
在進行深度學習處理時,有些的代碼處理的數(shù)據(jù)格式為npy,但是常常有的數(shù)據(jù)格式為png,因此下面就用Python實現(xiàn)圖像批量png格式轉(zhuǎn)為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'
# 創(chuàng)建輸出文件夾
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)
# 轉(zhuǎn)換圖像
img_8bit = img.convert('L') #參數(shù)L: 8位像素,黑白
# 創(chuàng)建一個轉(zhuǎn)換表,將灰度值為255的像素點變?yōu)?
'''
在這一行代碼中,創(chuàng)建了一個包含256個元素的列表(0到255的灰度值)。該列表的每個元素都通過條件判斷
0 if i == 255 else i 進行賦值。這意味著如果灰度值為255,那么賦值為0,否則保持不變。
這樣就形成了一個轉(zhuǎn)換表,用于將灰度值為255的像素點變?yōu)?。
'''
invert_table = [0 if i == 255 else i for i in range(256)]
'''
在這一行代碼中,通過point方法應用了之前創(chuàng)建的轉(zhuǎn)換表。
這個方法會對圖像中的每個像素點進行變換,根據(jù)轉(zhuǎn)換表將灰度值為255的像素點變?yōu)?,而其他灰度值保持不變。
最終,得到了經(jīng)過反轉(zhuǎn)處理的圖像img_inverted1。
'''
img_inverted1 = img_8bit.point(invert_table, 'L')
# 將圖像對象轉(zhuǎn)換為NumPy數(shù)組
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庫將圖像數(shù)據(jù)轉(zhuǎn)換為.npy格式。以下是一個示例代碼:
from PIL import Image
import numpy as np
#讀取PNG圖像
img = Image.open('image.png')
# 轉(zhuǎn)換為RGB格式
img = img.convert('RGB')
# 轉(zhuǎn)換numpy數(shù)組
img_arr = np.array(img)
# 保存為.npy格式
np.save('image.npy', img_arr)在這個示例中,首先使用Pillow庫打開PNG圖像,并將其轉(zhuǎn)換為RGB格式。然后,使用numpy庫將圖像數(shù)據(jù)轉(zhuǎn)換為numpy數(shù)組并保存為.npy格式。你可以將image.png替換為你要轉(zhuǎn)換的PNG圖像文件名,將image.npy替換為你想要保存為的.npy文件名。
相關問題
到此這篇關于Python實現(xiàn)批量將圖像png格式轉(zhuǎn)為npy格式的文章就介紹到這了,更多相關Python圖像png轉(zhuǎn)npy內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
numpy array找出符合條件的數(shù)并賦值的示例代碼
本文主要介紹了numpy array找出符合條件的數(shù)并賦值的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05
python中split(),?os.path.split()和os.path.splitext()的用法
本文主要介紹了python中split(),?os.path.split()和os.path.splitext()的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02
python使用openpyxl庫修改excel表格數(shù)據(jù)方法
今天小編就為大家分享一篇python使用openpyxl庫修改excel表格數(shù)據(jù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
python實現(xiàn)忽略大小寫對字符串列表排序的方法
這篇文章主要介紹了python實現(xiàn)忽略大小寫對字符串列表排序的方法,通過三種不同的方法實現(xiàn)了對字符串的排序,是非常實用的技巧,需要的朋友可以參考下2014-09-09

