Pillow和ndarray數(shù)組

2022-08-29 10:47 更新

NumPy 是 Python 科學(xué)計(jì)算的基礎(chǔ)數(shù)據(jù)包,它被大量的應(yīng)用于機(jī)器學(xué)習(xí)領(lǐng)域,比如圖像識別、自然語言處理、數(shù)據(jù)挖掘等。想了解學(xué)習(xí) NumPy,可跳轉(zhuǎn)至《NumPy快速入門教程》。

ndarray 是 NumPy 中的數(shù)組類型,也稱為 ndarray 數(shù)組,該數(shù)組可以與 Pillow 的 PIL.Image 對象實(shí)現(xiàn)相互轉(zhuǎn)化。


ndarray數(shù)組創(chuàng)建圖像

下面通過 ndarray 數(shù)組構(gòu)建一個(gè) Image 對象,并將圖像顯示出來。示例如下:

#導(dǎo)入相關(guān)的包
from PIL import Image
#使用numpy之前需要提前安裝
import numpy as np
#創(chuàng)建 300*400的圖像,3個(gè)顏色通道
array = np.zeros([300,400,3],dtype=np.uint8)
#rgb色彩模式
array[:,:200]=[255,0,0]
array[:,200:]=[255,255,0]
img = Image.fromarray(array)
img.show()
img.save("../數(shù)組生成圖像.png")

輸出結(jié)果如下所示:

pillow圖像處理

圖1:NumPy數(shù)組創(chuàng)建圖像


圖像轉(zhuǎn)化為ndarray數(shù)組

下面將圖像以 ndarray 數(shù)組的形式進(jìn)行輸出,示例如下:

from PIL import Image
import numpy as np
img = Image.open("../大熊貓.png")
img.show()
#Image圖像轉(zhuǎn)換為ndarray數(shù)組
img_2 = np.array(img)
print(img_2)
#ndarray轉(zhuǎn)換為Image圖像
arr_img = Image.fromarray(img_2)
#顯示圖片
arr_img.show()
#保存圖片
arr_img.save("../arr_img.png")

圖片展示結(jié)果:

pillow圖像處理

圖2:顯示原圖  

組成圖片的像素點(diǎn)數(shù)組如下所示:

[[[113 108 105]
  [118 113 110]
  [139 131 128]
  ...
  [139 148 155]
  [137 146 153]
  [139 148 155]]

[[ 97  92  89]
  [124 118 115]
  [137 129 126]
  ...
  [143 152 159]
  [140 149 156]
  [140 149 156]]

[[102  97  94]
  [123 118 115]
  [135 128 125]
  ...
  [144 153 160]
  [142 151 158]
  [143 152 159]]

...

[[168 175 134]
  [175 183 142]
  [151 162 120]
  ...
  [ 99 143  66]
  [111 155  77]
  [131 175  98]]

[[152 164 118]
  [147 160 114]
  [140 156 109]
  ...
  [123 167  87]
  [126 171  90]
  [120 165  84]]

[[136 154 104]
  [127 145  95]
  [156 176 125]
  ...
  [168 213 130]
  [142 187 104]
  [ 69 114  31]]]


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號