2015-03-13 81 views
0

我需要使用Matlab reshape()來實現以下功能:Matlab重塑功能

說我有一個圖像(M行x N cols x 3)。所以基本上是一個M×N圖像,每個像素具有3個通道,如紅色,綠色和藍色。

我想重塑這個形象成爲。

3 x total number of pixels 

其中, 第1列是RGB圖像(1,1), 第2欄是RGB圖像(2,1), 第3欄是RGB圖像(3,1), 。 。 。 是RGB圖像(M,1), 是RGB圖像(1,2) 等等...

回答

1

您需要reshape然後轉置如下:

im_out = reshape(im_in, [], 3).'; 

reshape這裏工作(給出你想要的順序),因爲它隱式地遍歷3D排列在linear-indexing順序:行子索引第一,然後列子索引,然後第三昏暗子索引。

+1

是不是'重塑(im_in,[],3)。''? – knedlsepp 2015-03-13 17:43:28

+1

@knedlsepp謝謝。就是這樣。我最初理解這個問題是錯誤的 – 2015-03-13 17:48:59