Main Content

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)

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

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

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)

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)

Argumentos de entrada

contraer todo

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

La función rgb2gray espera que las imágenes de color real del tipo de datos double y single tengan valores en el rango [0, 1]. Si una imagen tiene valores fuera del rango [0, 1], puede volver a escalar los valores al rango esperado utilizando la función rescale.

Si tiene instalada Parallel Computing Toolbox, RGB también puede ser un objeto 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 instalada Parallel Computing Toolbox, map también puede ser un objeto 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 instalada Parallel Computing Toolbox, I también puede ser un objeto 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 instalada Parallel Computing Toolbox, newmap también puede ser un objeto gpuArray.

Tipos de datos: double

Sugerencias

  • Si la imagen de entrada es de escala de grises, la función rgb2gray devuelve un error. Para evitar errores, puede usar la función im2gray en su lugar. 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.298936021293775 * R + 0.587043074451121 * G + 114020904255103 * B 

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 esta 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™.

Historial de versiones

Introducido antes de R2006a

Consulte también

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