在 Python 中將 NumPy 陣列儲存為影象

Manav Narula 2023年1月30日
  1. 使用 Image.fromarray() 函式將一個 numpy 陣列另存為影象
  2. 使用 imageio.imwrite() 函式將一個 numpy 陣列另存為影象
  3. 使用 matplotlib.pyplot.imsave() 函式將一個 NumPy 陣列另存為影象
  4. 使用 cv2.imwrite() 函式將一個 numpy 陣列另存為影象
在 Python 中將 NumPy 陣列儲存為影象

在 Python 中,numpy 模組用於處理陣列。Python 中有許多可用的模組,這些模組使我們可以讀取和儲存影象。

可以將影象視為儲存在具有相應顏色程式碼的特定位置的不同畫素的陣列。因此,我們可能會遇到需要將陣列轉換並儲存為影象的情況。

在本教程中,我們將討論如何將 numpy 陣列另存為影象。

使用 Image.fromarray() 函式將一個 numpy 陣列另存為影象

fromarray() 函式用於從匯出陣列的物件建立影象記憶體。然後,我們可以通過提供所需的路徑和檔名將影象記憶體儲存到我們所需的位置。

例如,

import numpy as np
from PIL import Image

array = np.arange(0, 737280, 1, np.uint8)
array = np.reshape(array, (1024, 720))

im = Image.fromarray(array)
im.save("filename.jpeg")

我們首先建立一個儲存 RGB 顏色程式碼的陣列,然後將其匯出。我們可以在檔名中指定影象的所需格式。可以是 jpegpng 或任何其他常用的圖​​像格式。這對於下面討論的所有方法都是很常見的。

使用 imageio.imwrite() 函式將一個 numpy 陣列另存為影象

較早之前,scipy 模組具有 imsave() 函式,可將 numpy 陣列另存為影象。但是,在最近的版本中,它已被棄用,並且開始推薦使用 image.io() 中的 imwrite() 函式來執行此任務,並因其簡單性而廣受歡迎。

以下程式碼顯示瞭如何使用此函式。

import imageio
import numpy as np

array = np.arange(0, 737280, 1, np.uint8)
array = np.reshape(array, (1024, 720))

imageio.imwrite("filename.jpeg", array)

使用 matplotlib.pyplot.imsave() 函式將一個 NumPy 陣列另存為影象

matplotlib 模組有多種函式可用於處理影象。

imsave() 函式可以將陣列另存為影象檔案。

例如,

import matplotlib.pyplot as plt
import numpy as np

array = np.arange(0, 737280, 1, np.uint8)
array = np.reshape(array, (1024, 720))

plt.imsave("filename.jpeg", array)

使用 cv2.imwrite() 函式將一個 numpy 陣列另存為影象

OpenCV 模組通常用於 Python 中的影象處理。該模組中的 imwrite() 函式可以將一個 numpy 陣列匯出為影象檔案。

例如,

import cv2
import numpy as np

array = np.arange(0, 737280, 1, np.uint8)
array = np.reshape(array, (1024, 720))

cv2.imwrite("filename.jpeg", array)
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn