Mostrar canales de colores separados de una imagen RGB
En este ejemplo se crea una imagen RGB sencilla y luego se separan los canales de colores. El ejemplo muestra el canal de cada color como una imagen de intensidad en escala de grises y una imagen de color.
Cree una imagen RGB con áreas de color rojo, verde y azul sin interrupciones. Muestre la imagen.
imSize = 200;
RGB = reshape(ones(imSize,1)*reshape(jet(imSize),1,imSize*3),[imSize,imSize,3]);
imshow(RGB)
title('Original RGB Image')
Separe los canales de los tres colores.
[R,G,B] = imsplit(RGB);
Muestre una representación de la escala de grises del canal de cada color. Tenga en cuenta que cada plano de color por separado de la figura contiene un área de color blanco. El blanco corresponde a los valores más altos (tonalidades más puras) de cada color por separado. Por ejemplo, en la imagen del canal rojo, el blanco representa la concentración más alta de los valores del color rojo puro. A medida que el rojo se mezcla con el verde o el azul, aparecen los píxeles grises. La región negra de la imagen muestra los valores de los píxeles que contienen valores que no son color rojo; en otras palabras, cuando 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')
Muestre una representación de colores del canal de cada color. En estas imágenes, el canal del color deseado mantiene los valores de intensidad originales y los valores de los píxeles de los canales de los otros dos colores se establecen en 0.
Cree un canal todo negro.
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);
Muestre todos los canales en un montaje.
figure montage({justR,justG,justB},'Size',[1 3], ... "BackgroundColor",'w',"BorderSize",10); title('Color Representation of the Red, Green, and Blue Color Channels');