???
感謝優秀的你打開了小白的文章
“希望在看文章的你今天又進步了一點點,離美好生活更近一步!”🌈
🚀往期回顧
| 影像的基本處理(一) | (1條訊息) 影像基本處理(一)_am_student的博客-CSDN博客 |
| 影像的基本處理(二) | (1條訊息) 圖片的基本處理(二)_am_student的博客-CSDN博客 |
| 影像的基本處理(三) | (1條訊息) 影像的基本處理(三)_am_student的博客-CSDN博客 |
| 影像的基本處理(四) 影像的基本處理(五)ImageDraw 模塊的使用 | (1條訊息) 學完這些影像處理,我拿去給女友修了圖..._am_student的博客-CSDN博客 影像的基本處理(五)ImageDraw 模塊的使用_am_student的博客-CSDN博客 |
🍉前言
在深度學習程序中,往往需要制作自己的資料集,相關論文中的現成的資料集盡管可以用來直觀地感受演算法的效果,但是與自己的專案需求都是有一定出入的,在有大量的圖片樣本時,我們首先需要讀取圖片,將其轉化為numpy陣列,并在控制臺列印出來,直觀地看到圖片對應的矩陣是什么樣子的,
🍉將圖片轉化成numpy陣列
例如:只是將一張照片轉化為陣列,那么可以簡單的這樣寫,

from PIL import Image
import numpy as np
image = Image.open("2.jpg")
image_arr = np.array(image) # 轉化成numpy陣列
🍉轉換實體
我們的任務:是將在./images/中的圖片轉化為陣列,并將轉化的陣列保存,然后嘗試將陣列再轉化為圖片保存在./result/中,
from PIL import Image
import numpy as np
import os
import pickle
#讀取圖片的目錄
image_dir='./images/'
#保存圖片的目錄
result_dir='./result/'
#保存陣列的檔案
array_file='./array.bin'
#讀取images目錄下的圖片,將圖片保存成大的一維陣列,將陣列保存到檔案
def image_to_array_file():
#獲取8張圖片的名稱
filenames=os.listdir(image_dir)
#定義變數保存8張圖片的大陣列
image_arrs=np.array([])
for filename in filenames:
#讀取圖片
img=Image.open(image_dir+filename)
#將每張圖片分隔
r,g,b=img.split()
#將r g b 轉換為一維的陣列
r_arr=np.array(r).reshape(62500)
g_arr=np.array(g).reshape(-1)
b_arr=np.array(b).reshape(62500)
#將 r_arr g_arr b_arr 拼接為一維陣列
arrs=np.concatenate((r_arr,g_arr,b_arr))
image_arrs=np.concatenate((arrs,image_arrs))
#將一維陣列保存到檔案中
with open(array_file,'wb') as f:
pickle.dump(image_arrs,f)
#讀取檔案中的內容,轉換圖片
def file_to_image():
with open(array_file,'rb') as f:
images=pickle.load(f)
image_arr=images.reshape((8,3,250,250))
for i in range(8):
r=Image.fromarray(image_arr[i][0]).convert('L')
g=Image.fromarray(image_arr[i][1]).convert('L')
b=Image.fromarray(image_arr[i][2]).convert('L')
#合并圖片
image=Image.merge('RGB',(r,g,b))
image.save(result_dir+str(i)+'.jpg')
if __name__ == '__main__':
file_to_image()
那么我們可以得到一個關于存盤陣列的array檔案,里面就是包含我們所需要的訓練的資料,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423158.html
標籤:AI
下一篇:19.初識Pytorch之完整的模型套路-整理后的代碼 Complete model routine - compiled code
