2016-11-14 79 views
0

我有一个尺寸为128x128的图像。我已经应用matlab的imread功能, A = imread(first.jpg); 但是,这是返回给我一个三维数组128x128x3,我如何将它转换为由3列R,G,B(每种颜色一列)组成的2-D矩阵?如何转换RGB形式的图像(2-D矩阵)

+0

你想获得一个有3列16384(128^2)行的矩阵,即每像素一行? – marcoresk

+0

是的,我想要连续每个像素的RGB值 –

回答

1
A = imread('first.jpg'); 
Npixels = size(A,1)*size(A,2); 
newA = reshape(A,[Npixels,3]); 
+0

谢谢。它工作得很好,你能告诉我如何将它转换回jpg图像? –

+0

@Tehreem Fatima为了回到原始大小,您需要在加载'Asz = size(A);'后保存图像大小。然后在处理'origA = reshape(newA,Asz);' – jodag

+0

后执行整形操作是的,如果你想保存它,jodag写的是正确的'imwrite(origA,'newImage.jpg','jpg'); @TehreemFatima –