如何把 image.transpose((2, 0, 1)) 之後,再復原

ponponon發表於2023-04-24

在對影像進行轉置操作時,可以使用 numpy.transpose 函式將影像的通道軸與高度軸、寬度軸進行交換,從而達到目的。例如,如果要將一個 RGB 影像轉換為通道-高度-寬度的陣列,可以使用以下程式碼:

import numpy as np
from PIL import Image

# 載入影像
image = Image.open("test.jpg")

# 將影像轉換為陣列
array = np.asarray(image)

# 將通道軸與高度、寬度軸交換
transposed_array = np.transpose(array, (2, 0, 1))

# 將轉置後的陣列轉換為影像
transposed_image = Image.fromarray(transposed_array.transpose(1, 2, 0))

在上面的程式碼中,我們首先使用 PIL 庫的 Image.open 函式載入一個影像,然後使用 numpy.asarray 函式將影像轉換為陣列。接下來,我們使用 numpy.transpose 函式將通道軸與高度、寬度軸交換,並將結果儲存在 transposed_array 變數中。最後,我們將轉置後的陣列再次進行轉置,並使用 PIL.Image.fromarray 函式將其轉換為影像。這樣就可以將轉置後的影像再次復原了。

相關文章