2016-11-14 9 views
0

У меня есть изображение размером 128x128. Я применил imread функцию matlab на нем, A = imread (first.jpg); , но это возвращает мне трехмерный массив 128x128x3, как я могу преобразовать его в двумерную матрицу, состоящую из 3 столбцов R, G, B (по одному столбцу для каждого цвета)?Как преобразовать изображение в виде 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 –