Объедините три изображения в градациях серого в RGB с помощью MATLAB - PullRequest
0 голосов
/ 29 сентября 2011

У меня есть три изображения в градациях серого, где каждое изображение представляет один канал из RGB-изображения с 16-битным разрешением. Я хотел бы преобразовать их, чтобы получить одно изображение RGB. Я пробовал cat и ind2rgb, но это не работает. Должны ли мы индексировать изображения в градациях серого перед использованием ind2rgb? Есть ли другой способ сделать это?

Спасибо

1 Ответ

5 голосов
/ 29 сентября 2011

Если у вас есть три матрицы R, G, B типа int16. Если вы попробуете

RGB = cat(3,R,G,B);
imshow(RGB)

IMSHOW пожалуется, что: RGB images must be uint8, uint16, single, or double.. На самом деле, если вы проверите документацию:

Истинное цветное изображение может быть uint8, uint16, одинарным или двойным. Индексированный изображение может быть логическим, uint8, одиночным или двойным. Изображение в градациях серого может быть логическим, uint8, int16, uint16, одинарным или двойным. Двоичное изображение должен быть логического класса.

Итак, если вы объединяете три int16 изображения в градациях серого и хотите использовать IMSHOW, вам необходимо преобразовать полученное изображение в истинном цвете во что-то, что оно поддерживает:

imshow( im2double(RGB) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...