2009-11-22 16 views
10

Estoy tratando de implementar un algoritmo en visión artificial y quiero probarlo en un conjunto de imágenes. Las imágenes son todas en color, pero no quiero lidiar con eso. Quiero convertirlos a escala de grises, lo cual es suficiente para probar el algoritmo.¿Cómo puedo convertir una imagen en color a escala de grises en MATLAB?

¿Cómo puedo convertir una imagen en color a escala de grises?

lo estoy leyendo con:

x = imread('bla.jpg'); 

¿Hay algún argumento que puedo añadir a imread leerlo como escala de grises? ¿Hay alguna manera de cambiar x a escala de grises después de leyéndola?

Respuesta

24

Utilice rgb2gray para eliminar el tono y la saturación (es decir, convertir a escala de grises). Documentation

+2

@Donnie: Actualicé el enlace a la documentación más reciente. – gnovice

+0

@Donnie: secundé la actualización del último documento. – leMoisela

+2

Realmente necesitan dejar de mover la documentación. :) – Donnie

8
x = imread('bla.jpg'); 
k = rgb2gray(x); 
figure(1),imshow(k); 
+0

>> k = rgb2gray (im); Función no definida 'rgb2gray' para argumentos de entrada del tipo 'uint8'. – ntg

1

se puede utilizar este código:

im=imread('your image'); 
k=rgb2gray(im); 
imshow(k); 

usando a Matlab

0

I=imread('yourimage.jpg'); 
p=rgb2gray(I) 
+0

Sé que la respuesta es simple, pero aquí desaconsejan las respuestas de solo código. Agregue un pequeño contexto, explique qué hace 'rgb2gray' y tal vez enlace a la documentación. – horchler

0

Uso del imread() y rgb2gray() f unciones para obtener una imagen de escala de grises.

Ejemplo:

I = imread('input.jpg'); 
J = rgb2gray(I); 
figure, imshow(I), figure, imshow(J); 

Si usted tiene una imagen en color-mapa, se debe hacer, como a continuación:

[X,map] = imread('input.tif'); 
gm = rgb2gray(map); 
imshow(X,gm); 

El algoritmo rgb2gray para su propia aplicación es:

f(R,G,B) = (0.2989 * R) + (0.5870 * G) + (0.1140 * B) 
Cuestiones relacionadas