0
假設我有以下結構的一維RGB陣列:如何在Matlab中重塑1D RGB到2D RGB圖像?
I = [r1 r2 ... rN; g1 g2 ... gN; b1 b2 ... bN];
其中
N = H*W;
ANS H和W分別是圖像的高度和寬度。
如何把它重塑有色圖像格式高x寬,這是由3D矩陣表示,這樣
I2(1,1,1) = r1
I2(1,1,2) = g1
I2(1,1,3) = b1
I2(2,1,1) = r2
I2(2,1,2) = g2
I2(2,1,3) = b2
...
I2(H,W,1) = rN
I2(H,W,2) = gN
I2(H,W,3) = bN
(如果我是正確的思維,正常的1D - > 2D按列重塑作品)
UPDATE
該整形可以做下面的方式
R = I(1,:);
R = reshape(R,H,W);
G = I(2,:);
G = reshape(G,H,W);
B = I(3,:);
B = reshape(B,H,W);
I2 = cat(3, R, G, B);
它可以做得更短,例如一個reshape
電話?
你在這個例子中有我什麼都不用在Matlab 1D。你的實際數組只是一個一維數組數組,其中前三分之一是你的R值,三分之一是G值,還有三分之一是你的B值? –
顯然,從Matlab的角度來看,它是二維數組數組。從邏輯角度來看,它是一維像素陣列,其中所有像素都沿着Matlab的第二維排列,而像素組件則沿着Matlab的第一維排列。 –