2015-03-13 73 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