簡體   English   中英

如何在Matlab中將1D RGB圖像重塑為2D RGB圖像?

[英]How to reshape 1D RGB to 2D RGB image in Matlab?

假設我具有以下結構的一維RGB陣列:

I = [r1 r2 ... rN; g1 g2 ... gN; b1 b2 ... bN];

哪里

N = H*W;

ans H和W分別是圖片的高度和寬度。

如何將其重塑為彩色圖像格式HxW,以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重塑可以按列進行操作)

更新

重塑可以通過以下方式完成

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呼叫?

我認為您正在尋找的是: reshape(I', H, W, 3)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM