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方法應(yīng)用了之前創(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文件名。
相關(guān)問題
到此這篇關(guān)于Python實現(xiàn)批量將圖像png格式轉(zhuǎn)為npy格式的文章就介紹到這了,更多相關(guān)Python圖像png轉(zhuǎn)npy內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
numpy array找出符合條件的數(shù)并賦值的示例代碼
本文主要介紹了numpy array找出符合條件的數(shù)并賦值的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05python中split(),?os.path.split()和os.path.splitext()的用法
本文主要介紹了python中split(),?os.path.split()和os.path.splitext()的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02python使用openpyxl庫修改excel表格數(shù)據(jù)方法
今天小編就為大家分享一篇python使用openpyxl庫修改excel表格數(shù)據(jù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05python實現(xiàn)忽略大小寫對字符串列表排序的方法
這篇文章主要介紹了python實現(xiàn)忽略大小寫對字符串列表排序的方法,通過三種不同的方法實現(xiàn)了對字符串的排序,是非常實用的技巧,需要的朋友可以參考下2014-09-09