2017-04-12 53 views
1

我有一個尺寸爲(3,1080,1920)的圖像。如何切換numpy中的圖像represantion而不旋轉圖像

我需要將它轉換爲(1080,1920,3)。要做到這一點,我只需轉置矩陣,但結果如下:(1920,1080,3)。爲了獲得所需的尺寸,我需要將它旋轉90°。

現在我想知道如果有更簡單的方法,那會減少工作嗎?

import numpy as np 
import cv2 

#...snippet: 
bgr = np.asarray([blue,green,red],dtype=np.uint8) 

bgr = bgr.T; 
#now do 90° degree turn, but maybe there is a simpler way? 
+2

注意旋轉不會比調換相同。在這兩種情況下,您將以正確的方向結束,但是會以水平鏡像的方式結束。 –

回答

1

使用np.transpose(),您可以指定軸作爲第二個參數。

你的情況,你想axes = (1, 2, 0)

例子:

import numpy as np 
my_matrix = np.random.rand(3,1080,1920) 
my_matrix.shape 

    (3,1080,1920) 

my_matrix = np.transpose(my_matrix, axes=(1, 2, 0)) 
my_matrix.shape 

    (1080,1920,3)