Как визуализировать оттенки серого unit8 как RGB в MATLAB?Невозможно добавить 3-е измерение - PullRequest
0 голосов
/ 05 июля 2019

Ссылки, которые я проверил, прежде чем задать этот вопрос:

  1. Преобразовать изображение RGB в оттенки серого, а изображение в градациях серого - в изображение RGB?

  2. Преобразование в класс данных unit8 в MATLAB

У меня есть изображение img. Я хочу визуализировать значения пикселей в матрице (после некоторых манипуляций) в MATLAB. R1, R2 и R3 - три матрицы, которые я создал для хранения значений пикселей R, G и B. соответственно.

for i=1:30

R1(:,1:30:) = toeplitz(img(i,:,1)); 
R2(:,1:30,:) = toeplitz(img(i,:,2)); 
R3(:,1:30,:) = toeplitz(img(i,:,3)); 
R = (R1+ R2+ R3)/3 ;  %%I know this part is incorrect

end

Однако imshow(R) показывает изображение в градациях серого, но я хочу визуализировать его в RGB. То, что я могу понять, это принимать значения пикселей от 0 до 255 за 0: черный и 255: белый. Я пытаюсь добиться того, чтобы он усреднил значение пикселя 3-го измерения в R1, R2 и R3 и показал мне пиксель в цвете.

Любая помощь будет оценена.

Ссылка: https://www.mathworks.com/help/matlab/ref/toeplitz.html

1 Ответ

0 голосов
/ 05 июля 2019

Для imshow требуется массив m-by-n-by-3 (см. документация ), поэтому для создания такого массива требуется три матрицы m-by-n (в вашем случае R1,R2, R3) Затем вы можете объединить их в третьем измерении через

imshow(cat(3,R1,R2,R3))

. Это должно привести к желаемому изображению RGB.

...