У меня есть изображение размером 128x128. Я применил imread функцию matlab на нем, A = imread (first.jpg); , но это возвращает мне трехмерный массив 128x128x3, как я могу преобразовать его в двумерную матрицу, состоящую из 3 столбцов R, G, B (по одному столбцу для каждого цвета)?Как преобразовать изображение в виде RGB (2-D матрица)
ответ
A = imread('first.jpg');
Npixels = size(A,1)*size(A,2);
newA = reshape(A,[Npixels,3]);
спасибо. он работает абсолютно нормально, можете ли вы также рассказать мне, как я могу преобразовать это обратно в jpg-образ? –
@Tehreem Fatima Чтобы вернуться к исходному размеру, вам нужно будет сохранить размер изображения после загрузки его 'Asz = size (A);'. Затем выполните операцию изменения после обработки 'origA = reshape (newA, Asz);' – jodag
да, что написал jodag правильно, если вы хотите сохранить его 'imwrite (origA, 'newImage.jpg', 'jpg');' @TehreemFatima –
Вы хотите получить матрицу, имеющую 3 столбца и 16384 (128^2) строк, то есть одну строку на пиксель? – marcoresk
да, я хочу RGB значение каждого пикселя в строке –