2017-02-02 61 views
0

交換陣列尺寸當我加載圖像與PIL,並將其轉換成一個NumPy的數組:與NumPy的

image = Image.open("myimage.png") 
pixels = np.asarray(image) 

的數據被存儲爲[X] [Y] [頻道]。即,像素[3,5,0]的值將是(3,5)像素,以及該像素的紅色分量。

但是,我正在使用一個庫,它要求圖像格式爲[channel] [x] [y]。因此,我想知道如何做這種轉換?

我知道NumPy有一個reshape函數,但這實際上並不允許您根據需要「交換」尺寸。

任何幫助?謝謝!

+0

您可以使用,而不是到'reshape'方法 – tmwilson26

+0

還有的'transpose'方法swapaxes,rollaxis和轉置。所有這些都允許您以某種方式排列軸。 – IanH

回答

5

爲了獲得尺寸的順序,你想要的,你可以使用轉置方法如下:

image = Image.open("myimage.png") 
pixels = np.asarray(image).transpose(2,0,1)