Отображение разделенных цветовых каналов изображения RGB

Этот пример создает простое изображение RGB, а затем разделяет цветовые каналы. В примере каждый цветовой канал отображается как изображение интенсивности полутонового цвета, так и как цветное изображение.

Создайте изображение RGB с непрерывными областями красного, зеленого и синего цветов. Отобразите изображение.

imSize = 200;
RGB = reshape(ones(imSize,1)*reshape(jet(imSize),1,imSize*3),[imSize,imSize,3]);
imshow(RGB)
title('Original RGB Image')

Figure contains an axes. The axes with title Original RGB Image contains an object of type image.

Разделите три цветовых канала.

[R,G,B] = imsplit(RGB);

Отобразите представление полутонового цвета каждого цветового канала. Заметьте, что каждая разделенная цветовая плоскость на рисунке содержит область белого цвета. Белый цвет соответствует самым высоким значениям (чистейшие оттенки) каждого отдельного цвета. Для примера в изображении красного канала белый цвет представляет самую высокую концентрацию значений чисто красного цвета. Когда красный цвет смешивается с зеленым или синим, появляются серые пиксели. Черная область на изображении показывает пиксельные значения, которые не содержат красных значений, другими словами, когда R == 0.

figure
subplot(1,3,1)
imshow(R)
title('Red Channel')

subplot(1,3,2)
imshow(G)
title('Green Channel')

subplot(1,3,3)
imshow(B)
title('Blue Channel')

Figure contains 3 axes. Axes 1 with title Red Channel contains an object of type image. Axes 2 with title Green Channel contains an object of type image. Axes 3 with title Blue Channel contains an object of type image.

Отображение цветового представления каждого цветового канала. В этих изображениях требуемый цветовой канал поддерживает свои исходные значения интенсивности, и значения пикселей в двух других цветовых каналах устанавливаются равными 0.

Создайте полностью черный канал.

allBlack = zeros(size(RGB,1,2),class(RGB));
justR = cat(3,R,allBlack,allBlack);
justG = cat(3,allBlack,G,allBlack);
justB = cat(3,allBlack,allBlack,B);

Отобразите все каналы в монтаже.

figure
montage({justR,justG,justB},'Size',[1 3], ...
    "BackgroundColor",'w',"BorderSize",10);
title('Color Representation of the Red, Green, and Blue Color Channels');

Figure contains an axes. The axes with title Color Representation of the Red, Green, and Blue Color Channels contains an object of type image.

См. также

Похожие темы