Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

rgb2gray

Convertir una imagen RGB o mapa de color en escala de grises

Descripción

ejemplo

I = rgb2gray(RGB) convierte la imagen de color real RGB en la imagen en escala de grises I. La función rgb2gray convierte imágenes RGB en escala de grises eliminando la información de tono y saturación y conservando la luminosidad al mismo tiempo. Si tiene instalado Parallel Computing Toolbox™, rgb2gray puede realizar esta conversión en una GPU.

ejemplo

newmap = rgb2gray(map) devuelve un mapa de colores en escala de grises equivalente a map.

Ejemplos

contraer todo

Lea y muestre una imagen RGB y conviértala en escala de grises.

Lea el archivo de muestra, peppers.png, y muestre la imagen RGB.

RGB = imread('peppers.png');
imshow(RGB)

Figure contains an axes object. The axes object contains an object of type image.

Convierta la imagen RGB en una imagen de escala de grises y muéstrela.

I = rgb2gray(RGB);
figure
imshow(I)

Figure contains an axes object. The axes object contains an object of type image.

Lea una imagen indexada con un mapa de colores RGB. Después, convierta el mapa de colores en escala de grises.

Lea el archivo de muestra, corn.tif, que es una imagen indexada con un mapa de colores RGB.

[X,map] = imread('corn.tif');

Visualice la imagen.

imshow(X,map)

Figure contains an axes object. The axes object contains an object of type image.

Convierta el mapa de colores RGB en un mapa de colores en escala de grises y vuelva a mostrar la imagen.

newmap = rgb2gray(map);
imshow(X,newmap)

Figure contains an axes object. The axes object contains an object of type image.

Argumentos de entrada

contraer todo

Imagen de color real, especificada como arreglo numérico de m por n por 3.

Si tiene instalado Parallel Computing Toolbox, RGB también puede ser un gpuArray.

Tipos de datos: single | double | uint8 | uint16

Mapa de colores, especificado como matriz numérica de c por 3 con valores en el rango [0, 1]. Cada fila de map es un triplete RGB que especifica los componentes rojos, verdes y azules de un solo color del mapa de colores.

Si tiene instalado Parallel Computing Toolbox, map también puede ser un gpuArray.

Tipos de datos: double

Argumentos de salida

contraer todo

Imagen en escala de grises, devuelta como un arreglo numérico de m por n.

Si tiene instalado Parallel Computing Toolbox, I también puede ser un gpuArray.

Mapa de colores en escala de grises, devuelto como matriz numérica de c por 3 con valores en el rango [0, 1]. Las tres columnas de newmap son idénticas, de forma que cada fila de map especifica un solo valor de intensidad.

Si tiene instalado Parallel Computing Toolbox, newmap también puede ser un gpuArray.

Tipos de datos: double

Sugerencias

  • La función rgb2gray devuelve un error si la imagen de entrada es de escala de grises. La función im2gray es idéntica a rgb2gray, excepto que puede aceptar imágenes de escala de grises como entradas y las devuelve sin modificar. Si usa la función im2gray, no se necesita código como esta instrucción condicional.

    if ndims(I) == 3
        I = rgb2gray(I);
    end

Algoritmos

rgb2gray convierte valores RGB en valores de escala de grises formando una suma ponderada de los componentes R, G y B:

0.2989 * R + 0.5870 * G + 0.1140 * B 

Se trata de las mismas ponderaciones utilizadas por la función rgb2ntsc (Image Processing Toolbox) para calcular el componente Y.

Los coeficientes utilizados para calcular valores de escala de grises en rgb2gray son idénticos a aquellos utilizados para calcular la luminosidad (E'y) en Rec.ITU-R BT.601-7 después de redondear a 3 decimales.

Rec.ITU-R BT.601-7 calcula E'y utilizando la siguiente fórmula:

0.299 * R + 0.587 * G + 0.114 * B

Capacidades ampliadas

Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.

Consulte también

| | (Image Processing Toolbox) | (Image Processing Toolbox) | | (Image Processing Toolbox)