Main Content

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')

Figure contains an axes object. The axes object with title Original RGB Image contains an object of type 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')

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

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');

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

Consulte también

Temas relacionados