2009-11-22 10 views
10

Sto cercando di implementare un algoritmo in computer vision e voglio provarlo su una serie di immagini. Le immagini sono tutte a colori, ma non voglio occuparmene. Voglio convertirli in scala di grigi che è sufficiente per testare l'algoritmo.Come posso convertire un'immagine a colori in scala di grigi in MATLAB?

Come posso convertire un'immagine a colori in scala di grigi?

lo sto leggendo con:

x = imread('bla.jpg'); 

Esiste qualche argomento che posso aggiungere a imread di leggerlo come scala di grigi? C'è un modo per cambiare in scala di grigi dopo aver letto?

risposta

24

Utilizzare rgb2gray per rimuovere la tonalità e la saturazione (ad esempio, convertire in scala di grigi). Documentation

+2

@Donnie: ho aggiornato il link alla documentazione più recente. – gnovice

+0

@Donnie: ho rilasciato l'aggiornamento al nuovo documento. – leMoisela

+2

Hanno davvero bisogno di smettere di spostare la documentazione. :) – Donnie

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

>> k = rgb2gray (im); Funzione indefinita 'rgb2gray' per argomenti di input di tipo 'uint8'. – ntg

1

è possibile utilizzando questo codice:

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

utilizzando a MATLAB

0

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

So che la risposta è semplice, ma qui le risposte al solo codice sono scoraggiate. Si prega di aggiungere un piccolo contesto, spiegare cosa 'rgb2gray' fa e magari collegare alla documentazione. – horchler

0

Utilizzare i imread() e rgb2gray() f unzioni per ottenere un'immagine in scala di grigi.

Esempio:

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

Se si dispone di un'immagine a colori-mappa, si deve fare come di seguito:

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

Il rgb2gray algoritmo per la propria implementazione è:

f(R,G,B) = (0.2989 * R) + (0.5870 * G) + (0.1140 * B) 
Problemi correlati